iOS - 使用insertSubview时UITableView高度自动调整不起作用

时间:2013-05-28 16:36:43

标签: ios objective-c uitableview iphone-5 autoresizingmask

我正在使用Storyboard开发iOS 5.1的iPhone应用程序。我有一个底部有UITabBar组件的UIViewController。我正在使用UITabBar委托事件didSelectItem加载不同的视图控制器,以便使用insertSubview用于每个标签页,例如:

[[self view] insertSubview:[salesQuotesVC view] belowSubview:mainTabBar];

我插入到主机视图中的视图控制器包含一个UITableView控件,其中启用了所有自动调整锚点/约束,因此它应该延伸到可用空间。它还具有模拟指标Top Bar = Navigation Bar和Bottom Bar = Tab Bar。除了在3.5“和4”(iPhone 5)屏幕之间切换时调整UITableView的大小,一切正常。如果我将Interface Builder设置为3.5“外形,那么它在3.5”设备上运行正常,但是在4“设备上表格太短。同样,如果我将IB外形设置为4”,它在4“上运行正常设备,但桌子太长,并在3.5英寸设备的标签栏下运行。

我之前从未遇到过在3.5“/ 4”设备之间自动调整的问题,但到目前为止我只使用UITabViewControllers作为标签页。这是我第一次使用UITabBar和UIViewController对我自己进行编码切换(我是为了可重用性而做的)。我猜测调整大小问题与insertSubview

有关

1 个答案:

答案 0 :(得分:1)

之前您没有遇到任何问题,因为视图控制器已经为您完成了。如果您要将视图添加为子视图,则需要自己完成。在将表视图添加为子视图之前,只需设置表视图的框架,然后您的自动调整规则将处理任何后续更改。