我在每个tableView
都有textView
cell
。
当用户执行Pull to Refresh
的操作时,整个视图会更改其颜色,以及单元格中textView
的文本颜色。
但有些细胞不会立即改变颜色由于某些原因,当我点击cell
并移动到下一个视图时,它们最终会改变颜色。
正如您所看到的,第一个单元格的文本颜色是正确的,但另外两个仍然像旧颜色一样。
这是我的代码:
var colorNumber = 1
var currentColor = UIColor()
var refreshControl: UIRefreshControl!
func colors() {
switch colorNumber {
case 1: currentColor = UIColor(red: 252/255, green: 244/255, blue: 250/255, alpha: 1)
case 2: currentColor = UIColor(red: 0/255, green: 200/255, blue: 100/255, alpha: 1)
default: currentColor = UIColor(red: 100/255, green: 28/255, blue: 37/255, alpha: 1)
}
tableView.reloadData()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! notesTableViewCell
cell.textView.tag = indexPath.row
cell.textView.isEditable = false
cell.textView.isSelectable = false
cell.textView.text = contentInNotes[indexPath.row]
cell.textView.textColor = currentColor
cell.textView.backgroundColor = .clear
}
func refreshColor(sender:AnyObject) {
switch colorNumber {
case 1:
colorNumber = 2
case 2:
colorNumber = 3
case 3:
colorNumber = 1
default:
colorNumber = 1
}
colors()
refreshControl.endRefreshing()
}
override func viewDidLoad() {
super.viewDidLoad()
refreshControl = UIRefreshControl()
refreshControl.attributedTitle = NSAttributedString(string: "Pull to Change Colors")
refreshControl.addTarget(self, action: #selector(refreshColor(sender:)), for: UIControlEvents.valueChanged)
tableView.addSubview(refreshControl)
}
修改
我发现,出于某种原因,每当有多少个字符 在每个细胞中超过4&用英语 - 它不会改变它的颜色!有 与代码中的字符限制无关。
知道为什么吗?