使用 AutoLayout 动态布局滚动视图 contentSize
Posted
技术标签:
【中文标题】使用 AutoLayout 动态布局滚动视图 contentSize【英文标题】:Dynamically layout scrollview contentSize with AutoLayout 【发布时间】:2013-07-07 09:35:06 【问题描述】:我有一个简单的案例: 我有以下视图层次结构:
-
查看
-
滚动视图
-
查看
-
标签
我的标签位于它的超级视图的底部,它的高度是动态变化的,这取决于它正在呈现的文本的大小。
我的目标是根据文本调整标签大小,使没有文本被截断,并随着标签行的增长,增加滚动视图的内容大小,使标签始终位于底部。
我如何使用自动布局来做到这一点,最好只来自 IB?
【问题讨论】:
【参考方案1】:如果您希望 UILabel
使用自动布局固定在其父 UIView
的底部,那么当 UILabel
高度增加时,该视图不会扩展其高度,真正发生的是 UILabel
将向上移动以占据更多区域。
如果您希望您的 UIView
扩展,则不要在该 UIView 中使用自动布局,并将您的 UILabel
定位在恒定原点,然后根据 UILabel
更改视图的高度和滚动视图高度文本。
您可以使用以下代码行获取 UILabel 大小:
CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:yourLabel.lineBreakMode];
【讨论】:
以上是关于使用 AutoLayout 动态布局滚动视图 contentSize的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Autolayout 正确构建 UIScrollView
没有 Interface Builder 的 UIScrollView 和 Autolayout - 滚动视图如何获得它的高度?
使用自动布局向 UIScrollView 添加动态大小的视图(高度)
滚动视图中的 UITextView 与 Autolayout iOS 不工作