others-change text color programmatically when using custom tableviewcell in tableviewcontroller
1. Purpose
In this post, I would demo how to change text color programmatically when using custom tableviewcell in tableviewcontroller.
2. Environment
- Mac OS 10.15
- Swift 5
- Xcode 12
3. The solution
Here is the code:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier2", for: indexPath) as! MessageTableViewCell
if messages.count>0 {
let msg = messages[indexPath.row]
cell.body?.text = msg.body
cell.fromAddress?.text = msg.fromAddress
let theDate = msg.recvDate
if let interval = timeIntervalFormatter.string(from: theDate, to: Date()) {
cell.recvDate?.text = "\(interval)\(agoString)"
}else {
cell.recvDate?.text = nil
}
if msg.isUnread {
cell.body.font = UIFont.boldSystemFont(ofSize: 13.0)
}else {
cell.body.font = UIFont.systemFont(ofSize: 13.0)
}
if msg.isStar {
cell.body.textColor = UIColor.blue
}else {
cell.body.textColor = UIColor.black
}
}else {
cell.body?.text = nil
cell.fromAddress?.text = nil
cell.recvDate?.text = nil
cell.recvDate?.text = nil
}
return cell
}
The key point is as follows:
if msg.isStar {
cell.body.textColor = UIColor.blue
}else {
cell.body.textColor = UIColor.black
}
Now it works!
4. Summary
In this post, I demonstrated how to change the color of text in custom tableviewcell with swift.