我正在尝试更改 uicollectionviewcell 内视图的颜色。但我无法改变颜色。当我尝试将 UIViewController 连接到我们的视图控制器时,它说“无法将重复内容连接为插座。”。
为了使它变圆,我正在使用视图并为其赋予图层半径属性。
这些值来自我创建的模型类并将其分配给 UIcolectionviewcell。模型仅包含一个显示标签的文本字段。
当用户选择任何标签时,背景和文本颜色会改变。我不是为了实现这一点。这可能很容易做到,但不知何故我无法做到这一点。
我正在尝试更改 uicollectionviewcell 内视图的颜色。但我无法改变颜色。当我尝试将 UIViewController 连接到我们的视图控制器时,它说“无法将重复内容连接为插座。”。
为了使它变圆,我正在使用视图并为其赋予图层半径属性。
这些值来自我创建的模型类并将其分配给 UIcolectionviewcell。模型仅包含一个显示标签的文本字段。
当用户选择任何标签时,背景和文本颜色会改变。我不是为了实现这一点。这可能很容易做到,但不知何故我无法做到这一点。
尝试更改圆形元素而不是整个单元格的背景颜色您可以创建自定义 UICollectionViewCell 并使用它来访问其中的不同项目,例如带有标签的文本字段
我添加了示例代码来满足您的要求,请参考并尝试基于以下代码实现:
//Your model class
class TagModel{
var tag:String!
var selected:Bool!
init(tag:String, selected:Bool) {
self.tag = tag
self.selected = selected
}
}
//your cell with Xib
class TagCell:UICollectionViewCell{
@IBOutlet weak var tagLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
func setTag(_ tagModel:TagModel){
tagLabel.layer.masksToBounds = true
tagLabel.layer.cornerRadius = tagLabel.frame.size.height/2
tagLabel.text = tagModel.tag
if tagModel.selected{
tagLabel.textColor = .white
tagLabel.backgroundColor = .blue
}else{
tagLabel.textColor = .gray
tagLabel.backgroundColor = .lightGray
}
}
}
//Your ViewController which has `UICollectionView`
class TagViewController:UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{
var tagModels:[TagModel]!
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
tagModels[indexPath.item].selected = !tagModels[indexPath.item].selected
collectionView.reloadItems(at: [indexPath])
}
}
注意:请将此代码作为示例,并根据您的实现进行修改。