画像、GIF、またはビデオを StackView に追加しようとすると、セルのサイズがメディアに合わせて変更されません。メディアは、StackView 内のすべてのものと重なるだけです。
class HubTableViewCell: UITableViewCell {
@IBOutlet weak var labelContent: UILabel!
@IBOutlet weak var stackViewContainer: UIStackView!
var mediaImage:UIImageView?
override func layoutSubviews() {
super.layoutSubviews()
mediaImage = UIImageView(frame: CGRect(x: 0, y: 0, width: stackViewContainer.bounds.width, height: 420))
mediaImage?.kf_setImageWithURL(NSURL(string: "https://placem.at/people")!)
mediaImage?.clipsToBounds = true
mediaImage?.contentMode = .ScaleAspectFill
mediaImage?.widthAnchor.constraintEqualToConstant(stackViewContainer.bounds.width).active = true
mediaImage?.heightAnchor.constraintEqualToConstant(420).active = true
if let mediaImage = mediaImage {
stackViewContainer.insertSubview(mediaImage, aboveSubview: labelContent)
stackViewContainer.bringSubviewToFront(mediaImage)
}
}
override func prepareForReuse() {
super.prepareForReuse()
if let mediaImage = mediaImage {
stackViewContainer.removeArrangedSubview(mediaImage)
mediaImage.removeFromSuperview()
}
mediaImage = nil
}
}