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 中不起作用