У меня есть пользовательское представление в пользовательской ячейке таблицы. Каждый раз, когда конкретное свойство в настраиваемом представлении изменяется, я вызываю [self setNeedsDisplay]
, который перерисовывает представление в - (void)drawRect:(CGRect)rect
. Это свойство установлено в делегате табличного представления tableView:cellForRowAtIndexPath:
. Но когда табличное представление больше экрана и ячейки нужно использовать повторно, drawRect
не вызывается каждый раз, когда setNeedsDisplay
. Особенно когда я быстро щелкаю по столу. Медленная прокрутка работает отлично. Это приводит к тому, что информация в первой и последней ячейках часто неверна.
В журнале видно, что обычно для каждого вызова на setNeedsDisplay
происходит вызов на drawRect
, но когда я быстро прокручиваю представление таблицы, звонков на setNeedsDisplay
больше, чем на drawRect
. Конечно, здесь должно быть соотношение один к одному.
Я использую тот же пользовательский вид в обычном UIView, и он отлично перерисовывается каждый раз, когда я вызываю setNeedsDisplay
. Проблема кажется изолированной для табличных представлений и повторного использования ячеек.
Кто-нибудь знает, что здесь происходит?
Есть ли другой способ заставить собственный вид перерисовать себя?