如何在动态高度UITableViewCell中更改项目的自动布局约束?

时间:2020-09-18 01:53:11

标签: ios swift dynamic autolayout tableview

我正在使用动态高度单元来实现聊天页面功能。

table.rowHeight = UITableView.automaticDimension
table.estimatedRowHeight = 120

例如,我对单元格进行如下约束:

         imageV.snp.remakeConstraints { (make) in
            make.leading.equalTo(contentView).offset(inset)
            make.top.equalTo(contentView).offset(inset)
            make.bottom.equalTo(contentView).offset(-inset)
            make.width.equalTo(imageMinW)
            make.height.equalTo(imageMinH)
        }

首先,我使用占位符图像进行显示,因此一切正常。 但是,我需要从Internet下载真实图像,例如,使用AlamofireImage通过将URL设置为imageview。完成后,将占位符替换为真实图像。我将imageV的约束更改为

        imageV.snp.remakeConstraints { (make) in
            make.leading.equalTo(contentView).offset(inset)
            make.top.equalTo(contentView).offset(inset)
            make.bottom.equalTo(contentView).offset(-inset)
            make.width.equalTo(calculatedW)
            make.height.equalTo(calculatedH)
        }

基于真实图像的大小和我设置的boundingSize,计算出的W和H被计算出来。尽管此更改的显示对用户来说效果很好。

但我注意到该日志:可能至少以下列表中的一个约束是您不想要的约束。 .....

由于更改约束时,像元高度已动态计算为固定数字,例如150。更改约束后,高度150无法满足新的约束,因此系统打破了固定高度约束。 / p>

所以我想知道如何解决问题?

0 个答案:

没有答案