我有一个布局如下(使用AutoLayout,iPad):
UIScrollView 的顶部、底部、前导和后续空间都设置为0。UIView 也有相似的四个约束条件。第二个 UILabel 的高度以编程方式设置为0(因为这里显示了超过一屏幕的文本)。此外,这些四个约束也已经从 UIView 设置到 UIScrollView 中。
XIB 加载时,这个 UILabel 正确地显示长行文本。但是滚动功能不起作用。这是在 iPad 上运行的应用程序的屏幕截图:
如果您仔细查看屏幕截图的末尾,就会发现 UILabel 的文本似乎溢出了 UIView。
我怀疑是因为 UIView 无法“捕获”其子视图的大小,所以 UIScrollView 也无法计算其内容大小(如果其内容视图只等于一个屏幕,那么滚动条没有工作的理由)。即使 UILabel 明显是 UIView 的子视图,为什么会发生这种情况?如果我的猜测是正确的,我该如何将 UIView 的高度设置为实际内容大小,以便我的 UILabel 在其中得到正确的包含?
(静态设置 UIView 的高度和宽度不是选项)。
UIScrollView 的顶部、底部、前导和后续空间都设置为0。UIView 也有相似的四个约束条件。第二个 UILabel 的高度以编程方式设置为0(因为这里显示了超过一屏幕的文本)。此外,这些四个约束也已经从 UIView 设置到 UIScrollView 中。
XIB 加载时,这个 UILabel 正确地显示长行文本。但是滚动功能不起作用。这是在 iPad 上运行的应用程序的屏幕截图:
如果您仔细查看屏幕截图的末尾,就会发现 UILabel 的文本似乎溢出了 UIView。
我怀疑是因为 UIView 无法“捕获”其子视图的大小,所以 UIScrollView 也无法计算其内容大小(如果其内容视图只等于一个屏幕,那么滚动条没有工作的理由)。即使 UILabel 明显是 UIView 的子视图,为什么会发生这种情况?如果我的猜测是正确的,我该如何将 UIView 的高度设置为实际内容大小,以便我的 UILabel 在其中得到正确的包含?
(静态设置 UIView 的高度和宽度不是选项)。
注意:测试了没有UIView
而只有一个UIScrollView
内部的单个UILabel
(包含长文本),现在可以滚动(我想是因为滚动视图可以计算其内容大小)。
注意2:我还尝试了这个SO问题和这篇文章中的答案,但我的UIView
简单地无法扩展到屏幕的尺寸之外。(我只关心水平滚动)