iOS -当使用insertSubview时,UITableView高度自动调整大小不工作



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

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

我插入到主机视图的视图控制器包含一个UITableView控件与所有自动大小锚/约束启用,所以它应该拉伸到可用的空间。它也有模拟指标顶栏=导航栏和底栏=标签栏。除了在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 ?

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

最新更新