【发布时间】:2014-11-23 20:31:18
【问题描述】:
我完全在代码中创建我的 UI,并使用 Masonry 将单元格的内容视图的子视图限制在适当的高度。我正在使用
[cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height
在 iOS 7 上用于行高,而 iOS 8 会自动处理。
一切看起来都与屏幕上应有的完全一样,但在控制台中,我收到大量关于冲突约束的警告,这一切似乎都是由单元格内容视图上未询问且不必要的高度约束引起的(例如<NSLayoutConstraint UITableViewCellContentView.height == 44>)。
在 iOS 8 上,我将表视图的 rowHeight 设置为 UITableViewAutomaticDimension(实际上是 -1),但我仍然得到这个约束。我只是在内容视图和它自己的子视图之间添加约束,所以内容视图和单元格本身之间没有约束。
知道这个约束来自哪里以及如何让它消失吗?
编辑:现在我实际上找到了一种“解决方案”——在添加子视图或约束之前,最初将内容视图的框架设置为一些荒谬的东西,比如CGRectMake(0, 0, 99999, 99999),似乎让警告消失了离开。但这听起来不像是正确的方法,所以有人能说出更好的方法吗?
【问题讨论】:
标签: ios uitableview autolayout