设置UITabBar的新帧时,UITabBarItems消失

时间:2014-12-01 15:06:16

标签: ios objective-c uitabbarcontroller uitabbar uitabbaritem

在我的应用程序中单击联系人选项卡(中键)时,我想从屏幕底部向上移动UITabBar并在其下方显示一个视图。

然而,当我使用以下代码移动UITabBar时,UITabBarItems消失了:

- (void)moveTabBarUpwards
{
    [self.tabBar setFrame:CGRectMake(0, 300, self.view.frame.size.width, self.view.frame.size.height)];
    //[self.tabBar.items[0] setFrame:CGRectMake(0, 300, self.view.frame.size.width, self.view.frame.size.height)];
}

结果如下:

enter image description here enter image description here

即使选项卡消失,工具栏仍可在新位置正常运行。不知道为什么会这样。

修改

如果我将标签栏向右移动到顶部,则UITabBarItems保持在同一位置。如果我将y移动到10,我会得到以下结果(如您所见,UITabBarItems仍然可见,但稍微向下移动):

enter image description here

1 个答案:

答案 0 :(得分:2)

我怀疑直接改变iOS的标准UI元素帧是一个好点。例如,UINavigationBar也是如此。

我建议您创建自己的UIView模型UIButtons和父视图控制器,子VC作为标签。通过这种方式,您将在未来的iOS版本中100%安全,因为除了Apple之外,没有人真正知道iOS的任何特定组件将采用哪种方式。