Я пытаюсь переместить некоторый пользовательский код рисования из вида в CAShapeLayer
, который затем добавляется в качестве подслоя к исходному представлению CALayer
. Это также хорошо работает, но при вращении устройства анимация начинает заикаться, например, Вы просто видите рамку в исходной ориентации, а затем в окончательной ориентации, с максимум одним кадром между ними - совсем не гладко. Анимации слайдов и слайдов соответствующих UIViewController
тоже немного отрывистые (но не очень).
Все значения CAShapeLayer
в path
равны одному CGPathAddRect
, для него установлено значение opaque
, opacity
равно 1.0f
, а для fillColor
установлено непрозрачное синее.
При рисовании траектории непосредственно в методе drawRect
видов анимация выглядит гладкой . Поэтому я полагаю, что это как-то связано с анимацией CAShapeLayer
во время вращения.
Не могли бы вы сказать мне, как избавиться от этого рывка или просто скрыть CAShapeLayer
при анимации? Возвращение только к рисованию CGPath
s не является для меня вариантом, потому что я полагаюсь на способность CAShapeLayer
анимировать его путь (он не анимируется в моих попытках с поворотом вида).
/ update: это также происходит, когда вращающееся представление UIViewController
s содержит представление с подклассом CAGradientLayer
в качестве layerClass
(например, представление с градиентным слоем в качестве фона).
Приветствия
MrMage