Я добавляю несколько CALayers в качестве подслоев слоя UIView. Содержимое каждого слоя - это отдельное изображение, загруженное с сервера. Каждый слой анимируется вне экрана в случайно сгенерированную позицию. Данные изображения загружаются асинхронно. Каждое изображение имеет размер примерно 300x300 или меньше.
В результате случайного размещения слои перекрываются, и некоторые из них закрываются слоями над ними. Это все хорошо.
Я ' m удаляя слои по мере того, как они становятся полностью скрытыми из поля зрения, используя предложение в ответ на этот вопрос Расчеты для определения покрытия производятся в отдельном потоке.
У меня есть UIPanGestureRecognizer, который позволяет пользователю перетаскивать слоев вокруг экрана.
Я сталкиваюсь с проблемой производительности, когда количество добавляемых слоев приближается к 25-30 и становится все хуже. Анимации становятся прерывистыми и часто полностью отсутствуют (недавно добавленные слои просто появляются в их окончательном положении). И жесты панорамирования либо игнорируются, либо приводят к прерывистому изменению положения выбранного слоя.
Я полагаю, что я ' m убивает графический процессор с перекрытием всех слоев и анимацией другого слоя выше?
Есть предложения по повышению производительности?
Рекомендации по работе с большим количеством слоев?
Лучше ли начинать анимацию слоя в отдельном слое просмотра, чем ранее добавленные слои?
Спасибо!