CollectionViewのindexPath.row=1のときのみLabelを追加しようとしています。
起動時は問題なく該当のセルのみにラベルが追加されるのですが、以降reloadDateするたびに他のセルにもラベルが追加されてしまいます。
reloadDateをしても他のセルにラベルを表示させず、indexPath=1のセル1つだけに表示させたいです。
この場合、どのように対処すればよいでしょうか?
分かる方がいらっしゃいましたらアドバイスを頂けますと幸いです。
swift
1func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 2 3 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CalendarCell 4 5 // タスクラベルを生成 6 class CustomLabel: UILabel { 7 override init(frame: CGRect) { 8 super.init(frame: frame) 9 //レイアウト 10 self.layer.cornerRadius = 3 11 self.clipsToBounds = true 12 //テキスト 13 self.font = UIFont(name: "HiraKakuProN-W3", size: 10) 14 self.textAlignment = NSTextAlignment.left 15 self.text = " " + "a" 16 //色 17 self.textColor = .white 18 self.backgroundColor = .lightGray 19 } 20 required init?(coder aDecoder: NSCoder) { 21 fatalError("init(coder:) has not been implemented") 22 } 23 } 24 let taskLabel0 = CustomLabel(frame: CGRect(x: 2, y: dCellHeight/5, width: dCellWidth-4, height: dCellHeight/6)) 25 26 //タスクラベルを追加 27 if indexPath.row == 1 { 28 cell.addSubview(taskLabel0) 29 } 30 31 return cell 32 }
起動時:該当セルにだけラベルが追加される↓
reloadDateすると、その回数分、別のセルにもラベルが追加されていく↓
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/25 06:00
2020/08/25 07:08