Я создал приложение для iOS (XCode 9, Swift 4), единственным видом которого является табличное представление, установленное на «Статические ячейки».Контроллер представления этой таблицы связан с пользовательским подклассом UITableViewController, код которого я включаю ниже.Таблица имеет один раздел, и этот раздел имеет одну строку.Внутри этой строки находится метка, текст которой первоначально был «Метка», а метка подключена к IBOutlet в моем контроллере пользовательского представления. Вот как выглядит раскадровка для более визуально настроенных.
Мой пользовательский контроллер табличного представления:
import UIKit
class MyTableViewController: UITableViewController {
@IBOutlet weak var label: UILabel!
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.label.text = "changed"
print("cell clicked")
}
}
Прямо сейчас, когда ячейка с меткойпри нажатии на нее печатается «ячейка нажата», но текст не изменяется.При повторном нажатии на ячейку снова печатается «ячейка нажата», ячейка становится выделенной, и текст метки становится «измененным».
В идеале, метка изменит свой текст на «измененный» сразу же, когдакамера, в которой он находится, прослушивается, но это не так, и я не могу понять, почему.Я подумал, что это может быть связано с тем, что ярлык не обновляется / перерисовывается, даже если его текст меняется, потому что, когда я щелкаю ярлык и затем прокручиваю представление, текст ярлыка становится «измененным» сразу после начала прокрутки.Я попытался обернуть self.label.text = changed
с DispatchQueue.main.async {}
, чтобы посмотреть, изменится ли что-нибудь, но это не так.
Для контекста это упрощенный случай вопроса, который я задал здесь , и я свел вопрос (насколько я могу судить) к этому простому случаю.У кого-нибудь есть идеи, что я могу сделать?Большое вам спасибо !!!