gpt4 book ai didi

ios - 我在他的类中设置 UITableViewCell 颜色后,它的颜色不再保持不变

转载 作者:行者123 更新时间:2023-11-30 10:53:45 25 4
gpt4 key购买 nike

在我的UITableViewCell类中,我有一个配置cellViewColor的函数。我有一个对象数组,并根据某些字段确定 cellView 应该是灰色、红色还是绿松石色。当 TableView 重用单元格时,它会以随机方式更改颜色。

class WidgetCell: UICollectionViewCell {
@IBOutlet weak var cellView: UIView!
@IBOutlet weak var mainValue: UILabel!
@IBOutlet weak var placeDetails: UILabel!
@IBOutlet weak var place: UILabel!
@IBOutlet weak var image: UIImageView!


func configureCell(entity: EntityModel) {
self.mainValue.text = entity.monitor?.value
self.placeDetails.text = entity.name
self.place.text = entity.name
self.cellView.applyGradient(withColours: setDeviceStateColor(deviceState: helper(entity: entity) ))
}

private func setDeviceStateColor(deviceState: DeviceState) -> [UIColor] {
switch deviceState {
case .alert:
return [UIColor.red, UIColor.red]
case .on:
return [Colors.lightTurcoazLIH, Colors.mediumTurcoazLIH]
case .off:
return [UIColor.lightGray,UIColor.darkGray]
}
}


extension UICollectionViewCell {
func helper(entity: EntityModel) -> DeviceState {
let state = entity.monitor?.state ?? false
let alert = entity.monitor?.alert ?? false
if state && alert {
return .alert
} else if state && alert == false {
return .on
} else {
return .off
}
}

与单元的双端队列有关。

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! WidgetCell
cell.configureCell(entity: favoriteDevices[indexPath.row])

return cell
}

我希望一切都清楚并且我的解释有意义。

另外,这里是 applyGradient(withColors:)

func applyGradient(withColours colours: [UIColor]) {
let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = self.bounds
gradient.cornerRadius = 3
gradient.colors = colours.map { $0.cgColor }
gradient.startPoint = CGPoint.init(x: 0.0, y: 0.0)
gradient.endPoint = CGPoint.init(x: 0.0, y: 1.0)
self.layer.insertSublayer(gradient, at: 0)
}

最佳答案

请在 setDeviceStateColor 方法的 switch 语句中添加一个 default 值。

也许对你有帮助。谢谢。

关于ios - 我在他的类中设置 UITableViewCell 颜色后,它的颜色不再保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com