如何以编程方式在 TableCell 中添加图像和添加约束?

how to add Images and add constraints in TableCell programmatically?

我想实现下图的效果。 我想在我的单元格中添加图片(已被我用红线框起来),如何实现?
我尝试用equalToSuperView().inset(10)做一些布局,但我不知道如何设置单元格和图像之间的关系。:

  1. 我创建了一个遵循协议 UITableViewCell
  2. WechatMomentListCell
class WechatMomentListCell: UITableViewCell{
    var content = UILabel()
    var senderAvatar = UIImageView()
    var senderNick = UILabel()
    var Images = [UIImageView()]
    var comments = [UILabel()]
}
  1. 我尝试在我的ViewController中实现func tableView()这样的,这里是布局头像的部分。
tweetCell.senderAvatar.sd_setImage(with: URL(string: tweet?.sender?.avatar ?? ""), placeholderImage: UIImage(named: "placeholder.png"))
//tweetCell.senderAvatar.frame = CGRect(x:0, y:0, width: 40, height: 40)

tweetCell.senderAvatar.snp.makeConstraints{(make) in
    make.leading.equalToSuperview().offset(50)
    make.bottom.equalToSuperview().offset(20)
    make.width.equalTo(40)
    make.height.equalTo(40)
}
  1. 这里是覆盖的全部代码 tableView:
let tweet = viewModel.tweetList?[indexPath.row]

for i in tweet?.images ?? [] {
    let flagImage = UIImageView()
    flagImage.sd_setImage(with: URL(string: i.url))
    tweetCell.Images.append(flagImage)
}
for i in tweet?.comments ?? [] {
    let flagComment = UILabel()
    flagComment.text = "\(i.sender) : \(i.content)"
    tweetCell.comments.append(flagComment)
}
tweetCell.senderNick.text = tweet?.sender?.nick
tweetCell.senderAvatar.sd_setImage(with: URL(string: tweet?.sender?.avatar ?? ""), placeholderImage: UIImage(named: "placeholder.png"))

//this part use for layouting avatar
tweetCell.senderAvatar.frame = CGRect(x:0, y:0, width: 40, height: 40)
tweetCell.senderAvatar.snp.makeConstraints{(make) in
    make.leading.equalToSuperview().offset(50)
    make.bottom.equalToSuperview().offset(20)
    make.width.equalTo(40)
    make.height.equalTo(40)
}        
return tweetCell

在我自己的演示中,table 列表单元格显示为空白。

1中的所有代码都是你的单元格的全部代码吗? 如果该单元格为空,我会首先检查您是否已将单元格正确注册到您的 tableView 以及 cellForRow 委托函数是否实际上 returns 正确的单元格。

假设 1. 中的内容是您单元格的完整代码: 你的单元格应该处理更多它自己的设置。它应该自行布局,自行下载图像并设置其约束(如您在问题中提到的那样,以编程方式)。用您提供的代码片段来更正您的代码是不可能的。 This 可能是适合您的教程。