如何在UICollectionview单元格上快速更改背景

时间:2017-05-06 17:51:20

标签: ios swift background uicollectionview uicollectionviewcell

我的应用程序在一个视图控制器中有一个文本字段,另一个在另一个视图控制器中有一个集合视图我正在显示在集合视图单元格中输入的文本。这很好用但我硬编码了两个单元格,我想在用户输入的文本上方显示。我想改变这两个单元格的背景是否可能? " NAMES"和"分数"是硬编码的项目(我想改变背景的那些)感谢任何帮助

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    return ScoreArray.count     
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let Cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)

    let Mycell = Cell.viewWithTag(1) as! UILabel

    Mycell.text = ScoreArray[indexPath.row]

    return Cell
}

override func viewDidLoad() {
    super.viewDidLoad()

    ScoreArray.append("NAMES")
    ScoreArray.append("SCORES")
}

2 个答案:

答案 0 :(得分:0)

对于tableView,我们默认添加了一个contentView。对于collectionView,我们也可以使用代码Eg访问它:

let myCell = collectionView.dequeueReusableCell(withReuseIdentifier: "myCellID", for: indexPath) as! MyCell
myCell.contentView.backgroundColor = .gray // contentView is  get only
myCell.contentView.addSubView(UIView())

答案 1 :(得分:0)

要将单元格的背景颜色更改为绿色:

Cell.backgroundColor = UIColor.green

要更改特定单元格,您需要查看indexPath,因为indexPath是唯一标识单元格的内容。

indexPath具有section和row属性。假设您只有一个部分,您可以在cellForItemAt中查看行属性,如下所示:

if indexPath.row == 0 {
    // make the first cell green
    Cell.backgroundColor = UIColor.green
}
else {
    // make all others red
    Cell.backgroundColor = UIColor.red
}