У меня есть некоторый контроллер представления, который использует мой собственный класс представления и интерфейс XIB, поэтому представление инициализируется из кодера. В этом контроллере представления, когда я перемещаю ползунок, он перерисовывает прямоугольник, в исходном состоянии прямоугольник находится на полном экране, а когда я перемещаю ползунок влево, размер прямоугольника уменьшается пропорционально (от полного экрана до 10x14 непрерывно с 4 пикселями). интервалы).
«Ползунок изменил значение» вызывает некоторый метод, который устанавливает новый размер прямоугольника, и в конце отправляет метод «setNeedsDisplay». И если я перехожу на метод setNeedsDisplayInRect:, он не обновляет все, что мне нужно на экране, есть некоторые артефакты. Но с отладкой он обновляет все как я хочу. Попытался отправить соответствующие прямоугольники для обновления, например:
redrawRect=CGRectUnion(oldRect, newRect);
[cView setNeedsDisplayInRect:redrawRect];
и некоторые другие, та же история. У меня вопрос, какой прямоугольник мне нужно отправить в "setNeedsDisplayInRect:"?
И второй вопрос, как я могу ускорить / оптимизировать всю эту историю для более плавной анимации и меньших затрат?