uitableviewcell内的imageview折叠单元格

时间:2019-10-17 23:27:59

标签: ios swift uitableview ios-autolayout

这是具有图像视图的Tabel视图单元格

class ChatTableViewCell: UITableViewCell {

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)


        self.contentView.addSubview(userImageView)

        userImageView_constraints()

        }

        var userImageView: UIImageView = {
        let imageView = UIImageView()
        let imageViewHeightAndWidth: CGFloat = 55
        let image = UIImage(named: "steve")
        imageView.image = image
        imageView.clipsToBounds = true
        imageView.layer.cornerRadius = imageViewHeightAndWidth / 2
        imageView.translatesAutoresizingMaskIntoConstraints = false
        return imageView
    }()


func userImageView_constraints(){
    userImageView.leadingAnchor.constraint(equalTo: self.contentView.leadingAnchor, constant: 20).isActive = true
    userImageView.topAnchor.constraint(equalTo: self.contentView.topAnchor, constant: 0).isActive = true
    userImageView.widthAnchor.constraint(equalToConstant: 55).isActive=true
    userImageView.heightAnchor.constraint(equalToConstant: 55).isActive=true

}

这是表格视图的代码

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "chatCell", for: indexPath) as! ChatTableViewCell
        return cell
    }

这是控制台中显示的错误

[警告]仅警告一次:检测到一种情况,即约束对于表视图单元的内容视图含糊地暗示高度为零。我们考虑的是无意倒塌,而是改用标准高度。单元格:>

1 个答案:

答案 0 :(得分:0)

您可以使用contentView,这不是绝对必要的,我直接使用self.addSubview()

由于图像的高度大于标准行的高度。您要么必须使用UITableViewDelegate方法heightForRow来实现一个高度,该方法要比您的55高,或者您要添加一个底部锚点:userImageView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true