【发布时间】:2015-05-30 10:52:31
【问题描述】:
我的布局如下(使用 AutoLayout,iPad):
UIScrollView 的 Top、Bottom、Leading、Trailing 到 superview 的空间为 0。UIView 也有所有四个类似的约束。第二个UILabel 以编程方式将其高度设置为0(因为此处显示的文本不止一屏)。另外,从UIView 到UIScrollView 也设置了这四个管脚约束。
加载 XIB 时,此 UILabel 正确显示长文本行。但是滚动不起作用。这是 iPad 上正在运行的应用程序的屏幕截图:
黄色背景设置为最外层视图,灰色背景设置为UIView。如果你仔细看屏幕截图的末尾,UILabel 的文字似乎溢出了UIView。
我怀疑因为UIView 无法“捕获”其子视图的大小,UIScrollView 也无法计算其内容大小(如果其内容视图仅等于一个屏幕,则滚动条没有理由工作) .即使UILabel 显然是UIView 的子视图,为什么会发生这种情况?如果我的怀疑是正确的,如何将UIView 的高度设置为等于实际内容大小,以便我的UILabel 正确“包含”在其中?
(不能静态设置UIView 的高度、宽度)。
NB:在没有UIView 的情况下测试了XIB,并且在UIScrollView 中只有一个UILabel(带有长文本)。现在滚动工作(因为,我认为滚动视图可以计算其内容大小)。
NB2:我也尝试了this SO question 和this post 中的答案,但我的UIView 根本不会超出屏幕的尺寸。 (我只关心水平滚动)
【问题讨论】:
标签: ios uiview uiscrollview autolayout