在iOS 7 / iOS 8上使用自动布局时,单元格高度错误

时间:2014-11-11 14:45:02

标签: ios uitableview autolayout nslayoutconstraint autoresizingmask

我的问题类似于thisthat问题。现在,内容视图不再存在高度问题,因为我在iOS 7自定义表格视图单元格的updateConstraints中为内容视图添加了自动调整大小屏幕(灵活高度/宽度)。

但是细胞的高度仍然存在同样的问题。它从自动调整大小的蒙版得到44点的高度。

Unable to simultaneously satisfy constraints  
// ...
"<NSAutoresizingMaskLayoutConstraint:0x7a4f61f0 h=-&- v=--&
V:[TestCellAuto_CustomCell:0x7a43bb10(44)]>"

布局完全被破坏,在输出中我得到上述错误。在iOS 8.1上一切正常。只有iOS 7才会出现这个问题。

如何告诉iOS它应该计算正确的单元格高度?

似乎您必须按照Using Auto Layout in UITableView for dynamic cell layouts & variable row heights中的说明设置rowHeight或实施heightForRowAtIndexPath

我的单元格的高度始终相同,但我不知道为什么自动布局无法在iOS 7上正确计算行高。在iOS 8上,旋转后行的高度错误,布局为弄乱。只有我在reloadData中拨打willRotateToInterfaceOrientation:duration:才能解决问题。但对于iOS 7,我仍然需要设置高度。不是一个理想的解决方案。

总而言之,这就是我现在要做的事情:

iOS 7:

    在添加约束和之前
  1. self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
  2. 定义固定的rowHeight
  3. 第一个是contentView,第二个是UITableViewCell

    iOS 8:

    • 我可以设置固定的rowHeight
    • reloadData
    • 中使用willRotateToInterfaceOrientation:duration:

    自动布局有什么问题?难道我做错了什么?你总是设定一个固定的高度吗?

0 个答案:

没有答案