iOS 8 xib + AutoLayout 无法为 tableViewHeaderView 正常工作
Posted
技术标签:
【中文标题】iOS 8 xib + AutoLayout 无法为 tableViewHeaderView 正常工作【英文标题】:iOS 8 xib + AutoLayout not working correctly for tableViewHeaderView 【发布时间】:2015-04-23 13:43:22 【问题描述】:我有一个带有 UIView 的 xib 文件,我想将它用作 tableViewHeaderView。该视图有一个带有一堆文本的标签。无论我尝试什么,我都无法对其进行调整,因此高度可以根据约束正确匹配。
这是笔尖:
标签设置为调整其高度以适合文本,并且所有边距距离超级视图 15 点。然而,当它被添加到表格视图时,它看起来像这样:
我似乎无法弄清楚我缺少什么,here is the sample project,您是否应该通过某种方式设置 nib 以允许根据其内容约束调整视图的大小?
编辑:我试过这里给出的答案没有运气:https://***.com/a/21099430/383603
编辑 2:它应该如下所示:
【问题讨论】:
【参考方案1】:看起来对于 tableViewHeaderView 视图,实际高度取自 xib 文件,在您的情况下为 570。如果这是真的,自动布局系统应该得到一个明确的状态:
垂直拥抱优先级是1000,这是最高的,为了得到那个 工作 它需要打破 15 顶部或 15 底部的约束 或动态调整标题的大小根据图片的外观,运行时系统很可能决定打破垂直拥抱优先级以保持其他一切有效
可能的解决方案可能是:
动态更改标题的高度 更改(降低)顶部和/或底部约束的优先级【讨论】:
以上是关于iOS 8 xib + AutoLayout 无法为 tableViewHeaderView 正常工作的主要内容,如果未能解决你的问题,请参考以下文章
iOS 在xib或者storyboard中添加AutoLayout后,在代码中修改AutoLayout约束条件
转使用Autolayout xib实现动态高度的TableViewCell