Улучшение производительности Core Animation - PullRequest
0 голосов
/ 17 октября 2011

Я создал пользовательский интерфейс, в котором большая часть того, что на экране, помещается туда, используя CALayer. Слои довольно просты с точки зрения их настройки; у большинства есть изображение, установленное как их содержание, и у пары есть тень. Есть также некоторые CALayer производные, такие как CATextLayer и CAGradientLayer. В любой момент на экране около 18 слоев. Содержимое 11 слоев часто изменяется (, но не для представления анимации ), и те же 11 слоев можно прокручивать влево или вправо, поскольку они встроены в UIScrollView.

Я заметил, что производительность как на 3GS, так и на 4 немного вялая, поэтому я ищу способы настроить то, что мне нужно, чтобы немного улучшить производительность.

Я установил rasterizationScale на соответствующую шкалу в зависимости от устройства и установил shouldRasterize на YES.

Изображения передаются в слои следующим образом ...

someLayer.contents = (id)someUIImage.CGImage

Что еще я могу сделать, чтобы улучшить общую производительность?

Ответы [ 2 ]

3 голосов
/ 17 октября 2011

Лучше всего было бы использовать доступные вам инструменты профилирования, чтобы точно определить, что вас тормозит.

Этот предыдущий ответ говорит, что это лучше, чем я мог: iOS / Core-Анимация: Производительность тюнинга

1 голос
/ 17 октября 2011

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

...