我在刷新UIViewController内的自定义UITableView时遇到问题。
当出现时,tableView的所有单元格都有清晰的背景色。
我上面有一个“开始”按钮,当我单击它时,我希望所有单元格都具有另一种颜色。
我在以下位置指定了规则:
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if self.status == "start" {
if indexPath != self.currentIndexPath {
cell.backgroundColor = UIColor(red: 0 , green: 0, blue: 0, alpha: 0.5)
} else {
cell.backgroundColor = UIColor.clearColor()
}
} else {
cell.backgroundColor = UIColor.clearColor()
}
}
在“开始”操作按钮中,我调用:
self.tableView.reloadData
@IBAction func startAction(sender: AnyObject) {
self.currentIndexPath = NSIndexPath(forRow: 0, inSection: 0)
self.status = "start"
self.tableView.reloadData()
}
但这不能很好地工作,因为我必须滚动以更新背景色。
我试图使用
self.tableView.reloadRowsAtIndexPaths
方法。但是结果是一样的。我总是必须滚动tableView来更新背景色或某些图像。
我在哪里错了?
最佳答案
将您对reloadData的调用替换为:
DispatchQueue.main.async { self.tableView.reloadData() }
关于ios - 在Swift中刷新UITableView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35552083/