gpt4 book ai didi

ios - 如何动态更改 UICollectionView 图像的 borderColor

转载 作者:行者123 更新时间:2023-11-29 05:33:37 24 4
gpt4 key购买 nike

我正在尝试构建一个 UICollectionView,它的每个单元格内都有一个带有黑色边框颜色的图像。当用户触摸该项目时,我希望它将其 borderColor 更改为红色并返回。我已经实现了这一点,但第一次接触时不起作用:

Video of the problem ,抱歉,我不知道如何将视频放入 StackOverflow。

func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) {
let cell = myCollectionView?.cellForItem(at: indexPath) as! CategoriesChoosingCell
if cell.layer.borderColor == UIColor.red.cgColor {
cell.imgView.layer.borderColor = UIColor.black.cgColor
} else {
cell.imgView.layer.borderColor = UIColor.red.cgColor
}
myCollectionView!.reloadItems(at: [indexPath])
}

这是我为实现此目的而创建的代码。有什么建议吗?谢谢

最佳答案

在模型中添加

class Item {
var isBlack = true // or false
}

然后在cellForRowAt

let cell = ///
cell.imgView.layer.borderColor = items[indexPath.row].isBlack ? UIColor.black.cgColor : UIColor.red.cgColor

然后

func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) { 
let item = items[indexPath.row]
item.isBlack = !(item.isBlack)
myCollectionView!.reloadItems(at: [indexPath])
}

这对于多重选择很有用,可以在 vc 中单独声明一个变量并检查是否

selectedRow == indexPath.row 

而不是

items[indexPath.row].isBlack

关于ios - 如何动态更改 UICollectionView 图像的 borderColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57272703/

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