Lan*_*ria 1 uitableview uicolor ios swift
我正在使用splitViewController,在主端,我有一个tableView,在详细端,我有任何信息将从所选单元格中显示。
在单元格已加载到屏幕上之后,我从明细端向主端发送通知以更改单元格内的textLabel的颜色(我不想重新加载)。
一切正常,但问题是我现在的操作方式,我只能分别更改每个可见的单元格,但我想一次更改它们。如果有10个单元,那么会有很多代码,所以我知道必须有一种更有效的方法。
@objc fileprivate func changeTextLabelColorToLightGray(){
let indexPathZero = NSIndexPath(row: 0, section: 0)
let cellZero = tableView.cellForRow(at: indexPathZero as IndexPath) as! MyCustomCell
cellZero.textLabel.text = UIColor.lightGray
let indexPathOne = NSIndexPath(row: 1, section: 0)
let cellOne = tableView.cellForRow(at: indexPathZero as IndexPath) as! MyCustomCell
cellOne.textLabel.text = UIColor.lightGray
}
@objc fileprivate func changeTextLabelColorBackToBlack(){
let indexPathZero = NSIndexPath(row: 0, section: 0)
let cellZero = tableView.cellForRow(at: indexPathZero as IndexPath) as! MyCustomCell
cellZero.textLabel.text = UIColor.black
let indexPathOne = NSIndexPath(row: 1, section: 0)
let cellOne = tableView.cellForRow(at: indexPathZero as IndexPath) as! MyCustomCell
cellOne.textLabel.text = UIColor.black
}
Run Code Online (Sandbox Code Playgroud)
如何执行以上操作,访问所有可见的单元格并立即更改它们的属性,而不是分别更改?
您可以访问属性visibleCells的UITableView和UICollectionView。这是您可以做什么的示例:
tableView?.visibleCells.forEach { cell in
if let cell = cell as? YourCell {
cell.changeTextLabelColorBackToBlack()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |