0
class SceneCell: UICollectionViewCell {
override var isSelected: Bool {
didSet {
setSelected(bool: isSelected)
}
}
override var isHighlighted: Bool {
didSet {
setHighlighted(bool: isHighlighted)
}
}
@IBOutlet weak var thumbnailImageView: UIImageView!
override func draw(_ rect: CGRect) {
super.draw(rect)
self.backgroundColor = .clear
self.thumbnailImageView.layer.borderColor = UIColor.green.cgColor
self.thumbnailImageView.layer.masksToBounds = true
self.thumbnailImageView.clipsToBounds = true
self.thumbnailImageView.layer.cornerRadius = 8
}
func update(with scene: Scene) {
}
private func setHighlighted(bool: Bool) {
if bool {
self.alpha = 0.5
} else {
self.alpha = 1.0
}
}
private func setSelected(bool: Bool) {
if bool {
self.thumbnailImageView.layer.borderWidth = 2.5
} else {
self.thumbnailImageView.layer.borderWidth = 0
}
}
}
私のコードでは、isSelectedがtrueに設定されていると、画像ビューのレイヤーの境界線幅を2.5に変更しました。プロパティオブザーバを持つコレクションビューのセルを変更するのは悪いですか?
1つのセルを選択してコレクションビューをスクロールすると、選択したセルを再利用するとセルは選択状態のままだが、再利用セルは選択されていない状態に変わります。第二に、選択したセルに戻り、選択されていないセルを再利用すると、選択されていない状態にあると思った。しかし、セルは自動的に選択されます。
収集ビューでは、これらを自動的に管理しますか?
しかし、私のコードは完全に機能します。 – Sohn
再利用の問題で完全に動作しますか?スクロールしないと完璧に動作していると思いますか? –
再利用の問題はありません。私の質問は、このコードがうまく機能する理由です。 – Sohn