因此,我的表格视图显示图像。每个单元格基本上都是填充整个单元格contentView
的图像。由于图像具有不同的宽高比,我需要我的单元格根据表格视图宽度和图像的纵横比调整其高度。我遵循了this Ray Wenderlich教程,但现在遇到了约束冲突。通过更改imageView
高度约束来调整图像大小,例如myImageViewHeight.constant = tableView.frame.width / aspectRatio
2016-06-16 13:56:25.823 MyApp[92709:5649464] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<NSLayoutConstraint:0x7fbcdaf5c190 V:[UIImageView:0x7fbcdaf5c300(303)]>",
"<NSLayoutConstraint:0x7fbcdaf5b460 V:|-(0)-[UIImageView:0x7fbcdaf5c300] (Names: '|':UITableViewCellContentView:0x7fbcdaf52230 )>",
"<NSLayoutConstraint:0x7fbcdaf5b4b0 V:[UIImageView:0x7fbcdaf5c300]-(0)-| (Names: '|':UITableViewCellContentView:0x7fbcdaf52230 )>",
"<NSLayoutConstraint:0x7fbcdaf5e550 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fbcdaf52230(100)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7fbcdaf5c190 V:[UIImageView:0x7fbcdaf5c300(303)]>
图像视图具有以下约束,并且单元格contentView
为superview。
在表视图控制器类中,我正在使用
self.tableView.estimatedRowHeight = 80
self.tableView.rowHeight = UITableViewAutomaticDimension
我也试过这个 - 同样的结果。
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
我猜我必须摆脱'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fbcdaf52230(100)]>"
,但是如何?另外,是否有人知道如何使用动态内容正确创建表格视图的某些文档/教程不仅涵盖单元格内有一堆标签?如果图片视图被标签替换,我的代码可以正常工作
答案 0 :(得分:7)
您的实现是正确的,不要更改代码或任何约束中的任何内容。只需选择高度约束并将其优先级从1000降低到999就可以轻松地修改警告。如果它仍然存在,让我知道。
答案 1 :(得分:0)
这是一个古老的问题,但我仅作记录。 这里的问题是估计的高点80,低于计算的高点100。 将估计的最高值更改为> = 100应该可以解决此警告。