Ios 动态设置uitableviewcell的高度
我有一个tableview单元格,其中包含名称、图像、注释、附件和“喜欢”按钮。附件是可选的。如果存在任何附件,则该附件应具有固定高度约束,否则为0。单元格是通过编程方式创建的。问题是,虽然注释大小的动态高度正在发生,但附件的动态高度没有设置,并导致波动。我正在附上下面的代码。谁能帮忙吗Ios 动态设置uitableviewcell的高度,ios,swift,constraints,Ios,Swift,Constraints,我有一个tableview单元格,其中包含名称、图像、注释、附件和“喜欢”按钮。附件是可选的。如果存在任何附件,则该附件应具有固定高度约束,否则为0。单元格是通过编程方式创建的。问题是,虽然注释大小的动态高度正在发生,但附件的动态高度没有设置,并导致波动。我正在附上下面的代码。谁能帮忙吗 override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?){ super.init(style: style,
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?){
super.init(style: style, reuseIdentifier: reuseIdentifier)
backgroundColor = .clear
contentView.addSubview(backView)
contentView.addSubview(descLabel)
contentView.addSubview(userImage)
contentView.addSubview(posterLabel)
contentView.addSubview(likeBtn)
contentView.addSubview(flagBtn)
contentView.addSubview(likeLabel)
contentView.addSubview(flagLabel)
contentView.addSubview(commentImage)
NSLayoutConstraint.activate([
userImage.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 25),
userImage.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 25),
userImage.heightAnchor.constraint(equalToConstant: 40),
userImage.widthAnchor.constraint(equalToConstant: 40),
posterLabel.leadingAnchor.constraint(equalTo: userImage.trailingAnchor, constant: 8),
posterLabel.centerYAnchor.constraint(equalTo: userImage.centerYAnchor),
posterLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
descLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 25),
descLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -25),
descLabel.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 75), descLabel.heightAnchor.constraint(greaterThanOrEqualToConstant: 30),
commentImage.leadingAnchor.constraint(equalTo: descLabel.leadingAnchor),
commentImage.widthAnchor.constraint(equalToConstant: 50),
commentImage.topAnchor.constraint(equalTo: descLabel.bottomAnchor, constant: 8),
likeBtn.leadingAnchor.constraint(equalTo: userImage.leadingAnchor),
likeBtn.heightAnchor.constraint(equalToConstant: 30),
likeBtn.widthAnchor.constraint(equalToConstant: 30),
likeBtn.topAnchor.constraint(equalTo: commentImage.bottomAnchor, constant: 12),
likeBtn.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -12),
likeLabel.leadingAnchor.constraint(equalTo: likeBtn.trailingAnchor, constant: 0),
likeLabel.bottomAnchor.constraint(equalTo: likeBtn.bottomAnchor, constant: -4),
flagBtn.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -40),
flagBtn.heightAnchor.constraint(equalToConstant: 30),
flagBtn.widthAnchor.constraint(equalToConstant: 30),
flagBtn.bottomAnchor.constraint(equalTo: likeBtn.bottomAnchor),
flagLabel.leadingAnchor.constraint(equalTo: flagBtn.trailingAnchor, constant: 0),
flagLabel.bottomAnchor.constraint(equalTo: flagBtn.bottomAnchor, constant: -4),
backView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 12),
backView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 12),
backView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -4),
backView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -12),
])
commentImageHeightConstraint = commentImage.heightAnchor.constraint(equalToConstant: 0)
commentImageHeightConstraint?.isActive = true
likeBtn.addTarget(self, action: #selector(voteComment(sender:)), for: UIControl.Event.touchUpInside)
flagBtn.addTarget(self, action: #selector(flagComment(sender:)), for: UIControl.Event.touchUpInside)
}
要使附件成为可选附件,您应该将附件放入堆栈视图中,然后根据需要隐藏/显示它因此,当您将stackView中的附件隐藏时,附件的高度将为0,这意味着它将消失,反之亦然。 例如: 如果你想显示按钮
button.isHidden = true
//Button will be shown like miracle.
要使附件成为可选附件,您应该将附件放入堆栈视图中,然后根据需要隐藏/显示它因此,当您将stackView中的附件隐藏时,附件的高度将为0,这意味着它将消失,反之亦然。 例如: 如果你想显示按钮
button.isHidden = true
//Button will be shown like miracle.
要使附件成为可选的,您应该将附件放在stackView中,然后根据需要隐藏/显示它。所以当你们在stackView中隐藏附件时,附件的高度将为0,这意味着它将消失,反之亦然。好的,我会试着回去。谢谢你的介绍。退出。嘿,谢谢,忘了通知,它像一个符咒一样工作。请让我给出正确的答案并结束这个问题。提前感谢。完成配对(y)(y)要使附件成为可选附件,您应该将附件放在stackView中,然后根据需要隐藏/显示。所以当你们在stackView中隐藏附件时,附件的高度将为0,这意味着它将消失,反之亦然。好的,我会试着回去。谢谢你的介绍。退出。嘿,谢谢,忘了通知,它像一个符咒一样工作。请让我给出正确的答案并结束这个问题。提前谢谢,伙计