Вопрос

Я пытаюсь переместить некоторый собственный код рисования из представления в CAShapeLayer, которые затем добавляются в качестве подслоя к исходному представлению CALayer.Это тоже работает хорошо, но при вращении устройства анимация начинает заикаться, например.вы просто видите кадр в исходной ориентации, а затем в окончательной ориентации, с не более чем одним кадром между ними - совсем не гладко.Анимация выдвижения и выдвижения соответствующих UIViewController тоже немного вяленые (но не настолько).

Все CAShapeLayer имеет в своем path это один CGPathAddRect, это установлено opaque, его opacity является 1.0f и fillColor установлен непрозрачный синий цвет.

При рисовании пути непосредственно на видах drawRect метод, однако, анимация является гладкий.Поэтому я полагаю, что это как-то связано с CAShapeLayer анимируется во время вращения.

Подскажите, пожалуйста, как избавиться от этой дерганности или просто скрыть CAShapeLayer при анимации?Возвращаемся к простому рисованию CGPathнапрямую для меня это не вариант, потому что я полагаюсь на способность CAShapeLayer чтобы анимировать его путь (в моих попытках с вращением представления он не анимируется).

/обновлять:это также происходит, когда вращающийся UIViewControllerПредставление s содержит представление с подклассом CAGradientLayer как это layerClass (например.вид со слоем градиента в качестве фона).

Ваше здоровье

Мистер Маг

Это было полезно?

Решение 2

Похоже, эта проблема была исправлена ​​Apple в iOS 4.

Другие советы

Ну, есть свойство скрыть, вы можете скрыть CAShapeLayer затем сделайте анимацию.Затем вызовите метод, который покажет CAShapeLayer чтобы вы не видели его, пока он вращается, и тогда он должен быть гладким

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top