【问题标题】:iOS 6 autolayout scrollview not scrolling with two tablesiOS 6自动布局滚动视图不滚动两个表
【发布时间】:2013-05-31 00:50:56
【问题描述】:

我有一个滚动视图,其中有两个并排的表格视图和一个底部导航栏。

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

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

我正在尝试坚持使用自动布局。我在这里做错了什么?表格视图的大小是视图的整个大小,并且导航栏设置为距视图底部为 0。它可以正确粘贴,但滚动根本不起作用。

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

【问题讨论】:

  • 你能澄清一下吗?当您说不滚动时,您的意思是滚动视图不滚动而表视图滚动,或者根本没有滚动?是否为表格视图启用了滚动功能?
  • 我已经关闭了表格视图的滚动功能。他们不应该滚动;相反,整个外部滚动视图应该滚动到表格内容的长度。

标签: ios6 scrollview tableview autolayout


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多