当选择了TextField下面的Button时,如何更改顶部UICollectionViewCell内部的标签的颜色(例如Q1)?
我只希望当前问题的标签更改其文本颜色 也就是说,如果用户在问题1上,则在选择按钮后,会将Q1颜色从橙色更改为白色。
请参见附件图片
我已经使用UIViewController作为UICollectionView的委托/数据源
答案 0 :(得分:0)
最好通过调用来更新UICollectionViewCell
/ UITableViewCell
collectionView.reloadItems(at: [IndexPath])
我想您有一系列问题和一些正确/错误的标志。所以应该有按钮选择处理程序和单元格组成方法
@objc private func onSomeButton(_ sender: UIButton) {
let questionNumber: Int = 999
self.markAnswer(correct: true, atIndex: questionNumber)
self.collectionView.reloadItems(at: [IndexPath(item: questionNumber, section: 0)])
}
然后此调用将触发以重新加载此单元格
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: self.someDefaultRequseId, for: IndexPath)
cell.label.textColor = self.isAnswerCorrect(at: indexPath.item) ? .white : .red
}
答案 1 :(得分:0)
如果我对您的情况有正确的了解,则不需要滚动显示收集视图,因此不需要单元的可重用性。因此,您需要一个静态结构。对于这种情况,最好对静态单元格使用UITableView
。您可以为每个单元格以及每个单元格内的每个元素设置IBOutlet
到主View Controller中。然后在TouchUpInside
的特定按钮内,为标签设置颜色。