【发布时间】:2015-06-25 08:08:19
【问题描述】:
我有一个UITableView,其中包含几列数据。可重用单元从具有适当标签和自动布局约束的 xib 文件加载。一切正常;表格列在不同设备上以及设备旋转时的布局正确。
我遇到的问题是尝试创建一个表格页脚来显示表格中各列的总数。
我创建了一个与单元格 xib 文件具有相同自动布局约束的 xib 文件,并以与单元格相同的方式将其加载到 tableView.viewForFooterInSection 中。根据需要,我使用UITableViewHeaderFooterView 的子类而不是UITableViewCell。
UITableViewHeaderFooterView 子类中的 awakeFromNib 方法设置背景颜色,因此我可以看到它在所有设备/方向上都是正确的大小,但页脚 xib 文件中的标签没有被布置以匹配表格单元格。
页脚 xib 文件中的自动布局约束未得到遵守。当我在页脚 xib 文件中设置不同的背景颜色时,表格页脚会在 xib 视图的长度范围内显示此背景颜色。
我是所有这些技术的新手,非常感谢帮助解决这个令人难以置信的令人沮丧的问题。
有没有办法为从笔尖加载的UITableViewHeaderFooterViews 使用自动布局?
【问题讨论】:
-
dequeueReusableHeaderFooterViewWithIdentifier 返回的单元格的 contentView 为 nil,但在 nib 中定义的标签显示在页脚中。标签的父视图是一个 UITableViewCellContentView,它的父视图是 UITableViewHeaderFooterView 的子类(单元格的类)。我可以通过 cell.subviews[1].subviews[0] 访问 lldb 中的标签,当我在子视图上尝试 constraintsAffectingLayoutForAxis(UILayoutConstraintAxis.Vertical) 时,没有约束 - 从笔尖加载视图时它们必须被剥离.
标签: ios swift uitableview autolayout nib