Я обнаружил, что механизм масштабирования в UIScrollView не совсем понятен и по сути непригоден для использования. Поэтому вместо этого я катаюсь на своих. У меня есть UIView, который изменяет размеры с помощью пинч-зума, и это работает нормально. Когда масштабирование завершено, представление должно сбросить свое преобразование и перерисовать изображения.
Увеличение работает по сути так же, как UIScrollView. Он устанавливает свойство transform
UIView до завершения. Затем, когда масштабирование закончится, я хочу сбросить значение transform
на CGAffineTransformIdentity
, изменить размер рамки до размера, который был раньше, и указать представлению перерисовать себя с новым размером.
Все это работает довольно хорошо, за исключением того, что когда я изменяю преобразование на тождественное, а затем перерисовываю изображение, появляется небольшое мерцание, прежде чем изображение полностью перерисовывается. Это связано с тем, что я использую подкласс CATiledLayer, поскольку представление может иметь произвольный размер.
Я переопределил fadeDuration
на ноль, но мерцание все еще сохраняется, пока преобразование сбрасывается до завершения перерисовки. Есть ли простой способ преодолеть это, не создавая другой вид для рисования и затем заменяя его?