我希望有人可以帮助您解决这个编码问题。我想用导航栏按钮更改我的集合视图单元格背景颜色,这是我的条形按钮选择器代码:
func handleBrightnessChanged() {
let readingCell = ReadingsDisplayCell()
readingCell.backgroundColor = .red
}
然而,当我点击按钮时按钮不会做任何事情。你能帮我么?下面是我的UICollectionViewCell类:
class ReadingsDisplayCell: UICollectionViewCell {
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor.gray
}
required init?(coder aDecoder: NSCoder) {
fatalError("fatal error in Daily cell")
}
}
非常感谢。
答案 0 :(得分:1)
您正在创建新单元格并设置其背景颜色,这对现有单元格没有影响。要更改单元格的颜色,请按照以下步骤操作。
首先,创建一个属性以跟踪单元格颜色。
var currentBackgroundColor = UIColor.gray
在handleBrightnessChanged
功能中,将此属性设置为新值。
func handleBrightnessChanged() {
currentBackgroundColor = .red
}
接下来,在collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath)
函数中设置单元格的背景颜色。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "myID", for: indexPath)
cell.backgroundColor = currentBackgroundColor
return cell
}
要在按下按钮时此更改生效,请在按下按钮时重新加载集合视图的数据。
func handleBrightnessChanged() {
currentBackgroundColor = .red
collectionView.reloadData()
}