2011-06-07 56 views
0

我正在创建一个UIViewController(没有笔尖)的自定义子类,我正在推入UINavigationController堆栈。在我的UIViewController子类的初始化过程中(loadViewviewDidLoadinit?)我想在视图的底部添加一个UITabBar子视图。问题是找出Y坐标。据我所知,视图在loadViewviewDidLoadinit之后的某个位置被调整大小,所以我无法获得调整后的高度以计算UITabBar的Y坐标。UITabBar子视图的Y坐标

找出包含视图的高度以便我可以将UITabBar锚定在底部的正确方法是什么?

回答

1

你需要做的是将你的UITabBar设置到视图的底部,然后告诉它留在那里如果超视图的边界改变。

这不是太棘手。例如,在viewDidLoad分配/初始化的标签栏为正常,并将其定位如下:

tabBar.frame = CGRectMake(self.view.frame.size.height-tabBar.frame.size.height, 0, 
          tabBar.frame.size.height, tabBar.frame.size.height); 
[self.view addSubview:tabBar]; 

...这将棒添加到视图的底部。

到目前为止很好:你的问题是当超级视图改变高度时,tabbar不会保持锁定在底部。为了解决这个问题,我们设置了一个自动调整掩码:

tabBar.autoresizingMask = UIViewAutoresizingMaskTopMargin; 

......这将有效地将栏锁定在超级视图的底部。

+0

非常感谢。我用iPhone做了很多工作,但从来没有用这些UIView完全掌握整个布局。我仍然习惯于HTML布局。我通过继承UIView,添加UITabBar到layoutSubviews并找到另一个解决方案。仍然很好地知道自动调整面具。干杯。 – chris 2011-06-08 10:32:24