Советы по оптимизации производительности при использовании тонн объектов CALayer? - PullRequest
1 голос
/ 14 октября 2010

Архитектура / иерархия моего приложения выглядит следующим образом:

UIView
UIView
CALayer | CALayer | CALayer | CALayer .... (and a few hundred more)

Эти экземпляры CALayer представляют маленькие квадратные точки на матричном дисплее для быстрого отсчета времени. Я обновляю их backgroundColor как можно чаще в секунду. На самом деле я хочу 60 раз в секунду, но я думаю, что устройство не может этого сделать.

У меня есть таймер, который часто вызывает метод. Затем этот метод выполняет итерацию по этим слоям с пиксельными точками и устанавливает для их backgroundColor все, что необходимо прямо сейчас.

Какие советы по оптимизации вам нужны для повышения производительности?

Одна вещь, которая приходит мне в голову:

1) Скажите каждому CALayer, что он непрозрачный!

Я полагаю, что возможностей для оптимизации намного больше. Может быть, не такая плоская иерархия, как у меня, а очень глубокая, где каждый CALayer является подслоем другого? Не уверен.

1 Ответ

2 голосов
/ 14 октября 2010

Не могли бы вы просто забыть о слоях и визуализировать изображение в каждом кадре, используя Кварц?

...