Как я могу остановить iPhone от отображения изменения трансформации, пока экран не будет перерисован - PullRequest
0 голосов
/ 11 июня 2009

Я обнаружил, что механизм масштабирования в UIScrollView не совсем понятен и по сути непригоден для использования. Поэтому вместо этого я катаюсь на своих. У меня есть UIView, который изменяет размеры с помощью пинч-зума, и это работает нормально. Когда масштабирование завершено, представление должно сбросить свое преобразование и перерисовать изображения.

Увеличение работает по сути так же, как UIScrollView. Он устанавливает свойство transform UIView до завершения. Затем, когда масштабирование закончится, я хочу сбросить значение transform на CGAffineTransformIdentity, изменить размер рамки до размера, который был раньше, и указать представлению перерисовать себя с новым размером.

Все это работает довольно хорошо, за исключением того, что когда я изменяю преобразование на тождественное, а затем перерисовываю изображение, появляется небольшое мерцание, прежде чем изображение полностью перерисовывается. Это связано с тем, что я использую подкласс CATiledLayer, поскольку представление может иметь произвольный размер.

Я переопределил fadeDuration на ноль, но мерцание все еще сохраняется, пока преобразование сбрасывается до завершения перерисовки. Есть ли простой способ преодолеть это, не создавая другой вид для рисования и затем заменяя его?

1 Ответ

0 голосов
/ 10 июня 2010

Проблема решена с использованием низкоуровневого подхода к слоям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...