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