У меня есть пользовательский UIView, который является подвидом UITableViewCell.Когда отрисовывается ячейка, мой пользовательский вид также корректно вызывает drawRect: в моем подклассе UIView.Когда ячейка перезагружается, вид отображается правильно (вызывается drawRect:
).
Когда происходит определенное событие (например, по таймеру), я хочу перерисовать представление без перезагрузки всей ячейки.(Это не единственное представление в ячейке.)
Однако, когда я вызываю setNeedsDisplay
на моем подвиде, ничего не происходит.
Я предполагаю, что когда мое представление drawRect:
вызывается, результирующее изображение кэшируется где-то в основе, так что когда я вызываю setNeedsDisplay
, эта поддержка перерисовывается на экране, но мой вызов drawRect:
больше никогда не вызывается.
Почему drawRect:
больше не вызывается после создания ячейки?
РЕДАКТИРОВАТЬ: подпредставления ячейки создаются из кончика.то есть: UIViewController загружается из пера, и его представление добавляется в UITableViewCell.
Я сделал тестовый пример с нуля с пользовательским представлением, которое не загружается из пера (созданного кодом), и онработает как положено: setNeedsDisplay
приводит к вызову drawRect:
.Это должно быть что-то, что либо настроено в файле .xib, либо что-то, что происходит по-другому с представлением, когда оно загружается из пера.