Генерация динамических плиток для CATiledLayer - PullRequest
8 голосов
/ 04 сентября 2010

Я видел сессию 104 WDC2010 для использования scrollviews и CATiledLayers, что довольно круто.Но я не уверен насчет генерации мозаичных изображений.В примере уже были созданы изображения плитки лягушки.Но если у меня есть приложение для фотографий, где я делаю свои собственные фотографии, мне нужно будет создавать плитки самостоятельно, и я не уверен в том, какой подход лучше использовать.

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

Непосредственно перед тем, как мне понадобится фотография, я создаю плитки во временный каталог.Когда я закончу просмотр, я могу удалить этот временный каталог.По крайней мере, я только использую дополнительное файловое пространство при просмотре фотографий.Но я буду обеспокоен загрузкой изображения для создания тайлов относительно того, внесу ли я задержку, которая заметна для пользователя.

1 Ответ

1 голос
/ 24 октября 2010

Вам не нужно экономить на мозаичных изображениях.По сути, вы должны создать UIImage / CGImage на основе отображаемого прямоугольника.

Я сделал нечто подобное здесь, и он работает довольно хорошо, бонус в том, что он очень эффективен с памятью.Я динамически генерирую CGImage (небольшую плитку из большого изображения), основываясь на отображаемом прямоугольнике, и TiledLayer удаляет его из памяти при сбросе прямоугольника.Я никогда не сохраняю CGImage в файл.

Недостатком этого подхода является то, что он вносит задержку при рендеринге ... Не подходит для игр на iphone 3g.

...