Два видимых CATiledLayers вызывают проблемы! - PullRequest
1 голос
/ 02 апреля 2011

С этой проблемой столкнулся кто-то другой, но я не видел никаких решений - см. (http://openradar.appspot.com/6941930).

У меня есть UIScrollView, слой содержимого которого содержит два CATiledLayers. Один мозаичный слой рисует контент довольно быстро (но достаточно долго, чтобы сделать drawInRect: слишком медленным!), Другой рисует их медленно.

У более быстрого CATiledLayer без Zoom есть настройки LOD по умолчанию с большим размером плитки.

Медленный CATiledLayer масштабируется.

Использование только одного из CATiledLayers ведет себя как ожидалось.

Проблема с добавлением обоих слоев на видимый экран заставляет один или другой вести себя медленно. Досадно, что кажется, что контент, который рисуется обычно быстрее, намного медленнее.

Я еще не нашел способа достоверно узнать, когда один CATiledLayer завершил свою ничью.

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

Я попытался использовать NSTimer и установить его на 3 секунды ожидания перед рисованием 2-го плиточного слоя. Однако это, похоже, не решает проблему! Я потерян!

1 Ответ

0 голосов
/ 12 апреля 2011

CATiledLayer, кажется, предпочитает любые плитки в центре экрана. Возможно, один из ваших слоев ближе к краю?

...