UITabBar 保持 UIPickerView 的底部显示
Posted
技术标签:
【中文标题】UITabBar 保持 UIPickerView 的底部显示【英文标题】:UITabBar keeps UIPickerView's bottom to display 【发布时间】:2013-04-03 07:23:44 【问题描述】:我试图在调用viewDidLoad
方法后立即显示选择器视图。但是,UITabBar
会阻止选择器视图的某些部分显示。如何将选择器视图带到UITabBar
的前面? pickerview 是一个UIView
子类。代码:
- (void)viewDidLoad
[super viewDidLoad];
self.pickerView = [[AllPickerView alloc] initWithdelegate:self];
[self.pickerView showInView:self.view];
【问题讨论】:
【参考方案1】:您可以在显示选择器视图时隐藏标签栏,也可以使用:
[[UIApplication sharedApplication].keyWindow addSubview:self.pickerView];
或者,如果您愿意,可以将其添加到 TabBarViewController
[self.tabBarController.view addSubview:...]; or
[self.tabBarController.tabBar addSubview:...];
【讨论】:
不是最好的主意。 pickerview 会阻止顶部导航栏。它保持在顶部。我希望它来自底部的动画。 你可以使用 UIView 动画为它制作任何你想要的动画【参考方案2】:正确设置框架
[self.pickerView setFrame:CGRectMake(0, self.view.frame.size.height-self.pickerView .bounds.size.height, self.pickerView .bounds.size.width, pickerView.bounds.size.height)];
编辑:
使用添加子视图而不是 showInView
[self.view addSubView:self.pickerView];
【讨论】:
它不工作。选择器视图来自视图的底部。 [self.tabBarController.view addSubview:...] 选择器视图显示在顶部,阻塞了导航栏。 [self.tabBarController.tabBar addSubview:...] 选择器视图显示在标签栏子视图中,而不是视图控制器的视图中。 @yongho :同时使用并尝试以上是关于UITabBar 保持 UIPickerView 的底部显示的主要内容,如果未能解决你的问题,请参考以下文章
在 iPhone SDK 中显示 UIPickerView 时隐藏 UITabBar
如何有条件地从单个 UITabBar 项目中选择 UIViewController 并保持 TabBar 可见
您如何将 UIButton 保持在 UITabBar 的顶部(如 z-index)