我有一个UICollectionView
,它有一个偏移的单元格,向用户显示有更多的滚动内容。问题是偏移单元格应该具有alpha值为1的挂锁。当我重复使用该单元格并执行检查时,这确实有效。
在初始加载时,不会在偏移单元格上调用检查已购买课程的内部方法。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if let purchased = purchasedCourses {
if !purchased.contains(courses[indexPath.row].type) {
print("CELL: \(indexPath.row)")
cell.padlock.alpha = 1
}
}
...
}
有没有办法解决这个问题?
我尝试过:layoutIfNeeded()
,setNeedsLayout()
reloadItems()
答案 0 :(得分:1)
您可以尝试
if !purchased.contains(courses[indexPath.row].type) {
print("CELL: \(indexPath.row)")
cell.padlock.alpha = 1
}
else {
cell.padlock.alpha = 0
}
OR
cell.padlock.alpha = purchased.contains(courses[indexPath.row].type ? 0 : 1
答案 1 :(得分:0)
在else
子句之后放入if
子句,并在else
部分中设置单元格的默认行为。这里的单元格将被重用,因此,如果您的if条件成立,则所有其他单元格将具有与您未提供else
的默认属性相同的属性。
if !purchased.contains(courses[indexPath.row].type) {
print("CELL: \(indexPath.row)")
cell.padlock.alpha = 1
}else {
cell.padloack.alpha = //your default value of alpha
}