cellForItemAtIndexPath
にはバグがありません。それは細胞のlabel
を隠しています。だから、ラベルを隠すだけでセルを取り除くことはできません。 2:00
と等しくない値だけを表示したい場合は、そのために追加の配列を1つ作成し、CollectionViewDelegate
メソッドに渡す必要があります。 1つのグローバル配列を作成し、このように機能します。
var array: [Int] = [Int]()
fun populateData() {
for i in oldArray {
if i != 2 {
self.array.append(i)
}
}
collectionView.reloadData()
}
今、この
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.array.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let hour = array[indexPath.row]
cell.hourBtn.setTitle("\(hour):00", forState: .Normal)
//Now there is no need to write code for hiding button
}
ようCollectionViewDelegate
方法でこのarray
オブジェクトを使用するが、これはあなたを助けることを願っています。
あなたが試したことを見せてください –
私のコードブロックと出力を示す写真が2枚あります。 "01:00"、 "02:00"、 ".."のような24時間を表示するために、ボタンを内部に持っているだけの水平コレクションビューを作りたい。しかし、いくつかのボタンを他のボタンと違うものにしたい。 hideボタンか別のtitleColorになります。この例では、「02:00」タイトル –
を持つボタンを隠そうとしています。しかし、「7:00」、「12:00」、「17:00」タイトルを持つ他のボタンも変更されています。水平コレクションビューを左または右に移動すると、別のボタンが設定されます。これは奇妙なことではない? –