iOS 8 UITableViewCell 与 UIImageView 动态高度

Posted

技术标签:

【中文标题】iOS 8 UITableViewCell 与 UIImageView 动态高度【英文标题】:iOS 8 UITableViewCell with UIImageView dynamic height 【发布时间】:2015-01-19 02:23:47 【问题描述】:

在尝试将 ios8 动态高度应用到我的自定义 UITableViewCell 时,它应该扩展并保持其纵横比,模拟器抛出以下警告。

如果我删除建议的约束,即 UIImageView 的纵横比,我会丢失图像纵横比并且图像被拉伸。

无法同时满足约束。 以下列表中的至少一个约束可能是您不想要的。试试这个:(1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 (注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档)

<NSLayoutConstraint:0x7fccc8490680 UIImageView:0x7fccc8490560.width == 1.73571*UIImageView:0x7fccc8490560.height>
<NSLayoutConstraint:0x7fccc991e100 UIImageView:0x7fccc8490560.top == UITableViewCellContentView:0x7fccc848cc00.topMargin + 43>
<NSLayoutConstraint:0x7fccc991e150 UITableViewCellContentView:0x7fccc848cc00.trailingMargin == UIImageView:0x7fccc8490560.trailing + 4>
<NSLayoutConstraint:0x7fccc991e1f0 UIImageView:0x7fccc8490560.leading == UITableViewCellContentView:0x7fccc848cc00.leadingMargin + 57>
<NSLayoutConstraint:0x7fccc991e270 UITableViewCellContentView:0x7fccc848cc00.bottomMargin == UIImageView:0x7fccc8490560.bottom - 4>
<NSLayoutConstraint:0x7fccc849ac20 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x7fccc848cc00(414)]>
<NSLayoutConstraint:0x7fccc84b19a0 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fccc848cc00(249)]>

将尝试通过打破约束来恢复

【问题讨论】:

【参考方案1】:

我刚刚找到了解决上述问题的方法。

将纵横比约束的优先级降低到 750 似乎可以解决这个问题

【讨论】:

以上是关于iOS 8 UITableViewCell 与 UIImageView 动态高度的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 UITableViewCell 上的弹簧和支柱调整大小损坏

带有 UITableViewCell 和 UITextField 的 iOS 8 自动布局

iOS 8:UITableViewCell.contentView 不会调整其中的子视图大小

iOS 8 中的 UITableViewCell 约束在 iOS7 中不起作用

在自定义 UITableViewCell 上使用图像时 IOS 8 崩溃

在Swift中旋转设备时iOS 8 uitableviewcell高度发生变化