自定义UITableViewCell的Autolayout约束在运行时失败

时间:2018-02-05 06:06:04

标签: ios uitableview uiview autolayout interface-builder

我的应用程序使用表视图控制器来显示包含嵌入在堆栈视图中的图像视图和标签的自定义原型表视图单元格。不幸的是,在运行时,主imageView(左侧)似乎放弃了它的约束并以意想不到的方式显示图像。

虽然我已经成功地在先前视图控制器(顶部)的视图中实现了堆栈视图中嵌入的基本相同的组件配置,但是这个相同的配置似乎在自定义表视图单元格(底部)中不起作用。

这是它在XCode中的显示方式:

enter image description here

这就是它在模拟器中出现的方式:

enter image description here

在第一次诊断问题时,我的调试器建议我通过添加UIViewAlertForUnsatisfiableConstraint来设置符号断点,因为它“试图通过破坏约束来恢复”,如下所述:How to trap on UIViewAlertForUnsatisfiableConstraints?

在修复问题几次尝试后,该错误消失了,并被Apple漏洞所取代:

Apple Bug Description

有没有解决后一个bug的方法,还是我正在做一些事情来触发它我可以解决?

仅供参考:由于观点有些密集,我主要使用IB来制定约束。

1 个答案:

答案 0 :(得分:1)

您正在使用UITableViewCell's默认UIImageView。 您必须为ImageView

中的UITableViewCell创建Outlet连接

您的代码:

class TableViewCell: UITableViewCell {
     @IBOutlet weak var thumbImgVw: UIImageView!
}


if let url = URL(string: location.imageUrl) {
    if let imageData = try? Data(contentsOf: url) {

         let image = UIImage(data: imageData)
         cell.thumbImgVw?.layer.cornerRadius = 10
         cell.thumbImgVw?.clipsToBounds = true
         cell.thumbImgVw?.image = image
    }
}

enter image description here