久しぶりにUICollectionViewCell
の実装をコードベースで行ったら、初心者みたいなやらかしをしたのでメモ👷♀️
やらかし
やらかしの一部がこちら。そうです、動的にCellの高さが変わるような場合に、Cellが再利用されるタイミングでImageViewのframeが以前のcontentView.frame
のままになるので、予期しないサイズでImageView
が表示されます。
class Cell: UICollectionViewCell {
private lazy var imageView: UIImageView = {
let imageView = UIImageView(frame: contentView.frame)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
imageView.layer.cornerRadius = 16
return imageView
}()
修正
いつもxibでやっているように、今回はAutoLayoutで制約を張ることで問題を解消しました🤮
contentView.addSubview(imageView)
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
imageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true
imageView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true
imageView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor).isActive = true
てな感じで本日も以上となります🍺
その他の記事
yamatooo.blog
yamatooo.blog
yamatooo.blog