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)

在呈现模态视图时显示 UITabBar

UITabBar 看起来像 UIToolBar(改变 UITabBar 的颜色)

UITabBar 宽度不随屏幕尺寸增加