Создание динамических плиток для CATiledLayer

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

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

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

One Solution collect form web for “Создание динамических плиток для CATiledLayer”

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

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

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

  • iOS - CATiledLayer renderInContext: приводит к искажению изображения
  • GMSGroundOverlay анимация - должен ли я использовать CATiledLayer?
  • Как кэшировать CGContextRef
  • CATiledLayer в симуляторе сетчатки iPad обеспечивает низкую производительность
  • Представлять и масштабировать большие изображения на iOS без CATiledLayer
  • CATiledLayer удаляется и обновляется при увеличении количества iPad 3-го поколения
  • Освободить память, используемую CGContextDrawPDFPage
  • Скрытие создания плитки CATiledLayer
  • UIScrollView w / Large CATiledLayer + Overlay, который быстро отображается
  • iOS CATiledLayer crash
  • Фоновое изображение для CATiledLayer
  • Эффективные пользовательские плиточные карты с настраиваемыми уровнями масштабирования и коэффициентами масштабирования
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.