Tag: uikit

显示UIPickerView就像键盘一样,没有UITextField

我正在寻找一种方式来展示一个UIPickerView当用户点击一个UIBarButtonItem 。 设想一下表格视图结果的filter。 我知道我可以使用UITextField inputView,但事实并非如此 – 我只有一个UIBarButtonItem和一个UITableView 。 我已经看到使用UIActionSheet ,但它看起来不自然,特别是当它animation显示。 将UIView手动启动和closures屏幕手动唯一的select? 该应用程序是仅iOS 6和iPhone,所以我不需要保持兼容性的任何其他版本/成语。

使用UIKit绘制复选标记NSString不会考虑填充颜色

我试图用UIKit绘制一个绿色的复选标记,但它是用黑色绘制的。 这里是代码: [[UIColor greenColor] set]; [@"✔" drawAtPoint:CGPointZero withFont:[UIFont systemFontOfSize:[UIFont systemFontSize]]]; 其他string用这种方法正确地绘制成绿色。 我怀疑复选标记符号包含的颜色信息覆盖了我select的填充颜色,但在UIWebView中使用颜色绘制相同的标志符号。 有没有办法让复选标记为绿色?

UIViewController:extendedLayoutIncludesOpaqueBars和滚动视图偏移量

我的应用程序的视图层次结构非常简单:一个UINavigationController包含一个UITableViewController 。 导航控制器的导航栏是不透明的,导致在导航转换期间表格视图的一些奇怪的插入行为,如下所示: 为了解决这个问题,我在UITableViewController上设置了extendedLayoutIncludesOpaqueBars为true 。 这样做正确地扩展了导航栏下面的视图,但以我不太明白的方式更改了表视图的contentOffset的行为。 将此属性设置为true ,表视图的contentOffset的Y值报告它的偏移量应高于导航栏当前高度的偏移量(即滚动table view 1pt,则报告其y偏移量为-63pts)。 这让我觉得导航控制器自动pipe理滚动视图的contentInset ,就像它对半透明酒吧。 但是我看不到有任何证据表明scrollViewDidScroll()中的scroll view有内容插入。 即使在表格视图控制器上将automaticallyAdjustsScrollViewInsets设置为false ,内容偏移也是不正确的,所以看起来与插入无关。 Apple关于extendedLayoutIncludesOpaqueBars的文档没有提及滚动视图的内容偏移的行为。 更改表视图的contentInset不幸的是不能解决这个问题。 我试图改变表视图​​控制器的edgesForExtendedLayout属性强制它扩展而不影响滚动视图,但似乎这个属性是无力对不透明的酒吧。 是否有一些隐藏的行为与extendedLayoutIncludesOpaqueBars滚动视图的内容偏移量的extendedLayoutIncludesOpaqueBars ? 或者这可能是一个错误?

我怎样才能改变UIPopoverPresentationController背后的覆盖的不透明度?

我正在使用UIPopoverPresentationController在iOS应用中呈现popup窗口。 当它出现时,我想调暗背后的背景。 我怎样才能做到这一点? 有没有一个API的地方,或者当我提出popover时,我将不得不覆盖主视图上的东西?

如何在不指定估计行高的情况下使用iOS自动resize的单元格?

我想利用自动布局在iOS 8中自动照顾我的细胞高度,但我讨厌估计行高度滚动(跳动,滚动位置不可预知,等等)如何挑剔。 有没有办法不使用估计,以便表视图预先计算所有的行高,就像它在iOS 7之前(不是太多的单元格,所以不是一个性能问题),但使用iOS 8的高度自动计算?

UIScrollViewKeyboardDismissModeInteractive用键盘改变tableview的高度

在一个UIViewController我设置self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive 。 这很好,因为用户可以从桌面视图拖动键盘。 但是,当拖动键盘时,tableview保持当前的高度。 这看起来很奇怪,因为它留下了键盘和滚动视图之间的空白空间。 我如何持续跟踪键盘的框架,以便在用户拖动键盘时调整tableview的大小? 我试过使用UIKeyboardWillChangeFrameNotification但似乎只有在用户完成拖动后才能调用。

更改UINavigationController中“后退”button的默认字体

我正在尝试将UINavigationController中的“后退”button的默认字体更改为自定义字体 UIFont *myCustomFont = [UIFont fontWithName:@"MyCustomFont" size:18]; 我怎样才能设置这个自定义字体到后退button? 我已经浏览了其他类似问题的答案,但没有成功。

UIScrollView在addSubview或更改框架之后不需要的滚动

我有一个UIScrollView填充子视图,创build它,并最初填充时,一切都很好。 但是,当我添加一个新的子视图的可见屏幕部分以外的位置,或者当我只调整一个现有的子视图也是可见的屏幕部分之外,有一个随后的0.3s长的滚动animation(我可以看到它发生在我的委托)似乎匹配新添加/resize的元素。 尝试: pagingEnabled始终为NO。 在子视图操作过程中将scrollEnabled设置为NO不起作用。 在子视图操作之后执行setContentOffset:animated:NO不会阻止animation。 我的所有子视图中的一个巨大的子视图并没有帮助。 我目前的解决方法是最初设置框架,以适应可见的屏幕部分,或在另一个超级视图的大小工作,但它感觉肮脏,并不会处理所有情况下… 有没有办法来防止这种自动滚动animation时,以编程方式操作子视图? Xcode 4.3,iOS SDK for 5.1。

在加载另一个ViewController时呈现一个模式视图控制器

用户可以使用我的应用程序之前,他必须login。 login后,数据库就build立了,因为我需要从服务器获取信息来构build它。 因此,我的根ViewController是LoginViewController,它提供了实际的应用程序(一个navigationController堆栈)模式上成功login。 如果用户在应用程序启动时已经login(我使用NSUserDefaults存储凭据),LoginViewController应该立即显示应用程序。 所以我重写了这个方法: – (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; NSInteger userId = [[NSUserDefaults standardUserDefaults] integerForKey:@"selfUser"]; if (userId != 0) { //[self performSelector:@selector(presentMainViewController) withObject:nil afterDelay:2]; [self presentMainViewController]; } } – (void)presentMainViewController { mainViewController = [[MainViewController alloc] init]; mainViewController.managedObjectContext = managedObjectContext; navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController]; navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:navigationController animated:NO]; } [self presentMainViewController]; 被执行,但控制器不显示。 […]

如何使UINavigationBar不下推视图?

我有一个UINavigationController多个UIViewController 。 有时我会展示酒吧,有时候我不会。 如何在不压下视图的情况下显示导航栏?