iOS 6自动布局滚动视图不滚动两个表

时间:2013-05-31 00:50:56

标签: ios6 scrollview tableview autolayout

我有一个滚动视图,两个并排的桌面视图和一个底部导航栏。

两个tableviews都应该使用整个视图,但如果其内容对于屏幕来说太大,则将一起滚动。这两个tableviews显示了同一数据集的不同数据。

view hierarchy

当表格内容大于屏幕,或者我将手机旋转到横向时,则没有滚动。似乎没有任何滚动。

我正试图坚持使用自动布局。我在这做错了什么? tableviews的大小适合视图的整个大小,导航栏设置为距离视图底部0。它正确粘贴,但滚动根本不起作用。

我应该怎样做才能让滚动工作?

1 个答案:

答案 0 :(得分:2)

UITableView本身就是一个UIScrollView - 这意味着如果它的内部内容大于它的大小,它将滚动。之前我必须处理滚动视图中的表视图,我认为关闭滚动不会强制表视图为其内部内容的高度,而是将其剪切到可见区域。要获得适合内部内容的表视图,您需要向表视图添加高度约束并将其拖动到控制器中以创建插座。然后在你的控制器中添加这样的东西(更新以匹配你的约束插座名称)

-(void) viewWillLayoutSubviews{
    [self.tableViewOne layoutIfNeeded];
    self.tableViewOneHeightConstraint.constant = self.tableViewOne.contentSize.height;

    [self.tableViewTwo layoutIfNeeded];
    self.tableViewTwoHeightConstraint.constant = self.tableViewTwo.contentSize.height;
}

确保您从表格视图的底部到滚动视图也有约束,以便您的主滚动视图知道适合内部内容。