У меня есть одна метка, которая на основе некоторого условия будет видна для некоторых строк. Я добавил метку в виде стека. Пользовательский интерфейс метки должен иметь цвет фона и радиус угла как круглые.
У меня есть ячейка подкласса UItableview, и я использовал следующий код:
class SampleCell: UITableViewCell {
@IBOutlet weak var status: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func prepareForReuse() {
super.prepareForReuse()
self.status.text = nil
}
override func didMoveToSuperview() {
super.didMoveToSuperview()
layoutIfNeeded()
}
func setUpStatusLabel(isShow: Bool) {
self.status.text = "Status"
self.status.textColor = UIColor.red
self.status.font = UIFont.systemFont(ofSize: 11)
self.status.layer.cornerRadius =
self.status.frame.size.height/2
self.status.layer.masksToBounds = false
self.status.layer.backgroundColor = UIColor.lightGray.cgColor
self.status.isHidden = !isShow
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = (tableView.dequeueReusableCell(withIdentifier: "sample", for: indexPath) as? SampleCell)!
if indexPath.row % 2 == 0 {
cell.setUpStatusLabel(isShow: true)
} else {
cell.setUpStatusLabel(isShow: false)
}
}
Когда я запускаю этот код и прокручиваю табличное представление, угловой радиус метки иногда становится таким образомчтобы показать прямоугольник, означающий отсутствие углового радиуса, а иногда и цвет фона также теряется. Мне нужно сохранить все это, когда пользователь прокручивает табличное представление.