我希望隐藏按钮,只要它的标题等于' str'变量。
我无法添加更多照片,但它会为#34; 7:00"," 12:00"," 17:00&#34做同样的事情;," 22:00"值。 只想要" 2:00"并做了比较。
这是一个(collectionView)cellForItemAtIndexPath错误还是其他什么?我很困惑。请帮忙..
答案 0 :(得分:1)
cellForItemAtIndexPath
中没有错误,隐藏label
单元格的你。所以它只是隐藏标签而不是删除单元格。如果您只想显示不等于2:00
的值,则需要为此创建一个额外的数组并将其提供给CollectionViewDelegate
方法。创建一个全局数组并按此运行。
var array: [Int] = [Int]()
fun populateData() {
for i in oldArray {
if i != 2 {
self.array.append(i)
}
}
collectionView.reloadData()
}
现在在array
方法中使用此CollectionViewDelegate
对象
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
}
希望这会对你有所帮助。
答案 1 :(得分:1)
滚动时会重新使用单元格,因此根据条件设置隐藏的真假。我认为这是你的问题。
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let hour = array[indexPath.row]
let str ="2:00"
if(cell.hourBtn.titleLabel?.text ==str {
cell.hourBtn.hidden = true
}
else {
cell.hourBtn.hidden = false
}
}