У меня есть UIScrollView с UIView, который в свою очередь содержит CATiledLayer, который отображает карту.
Я должен начать с обзора, где можно ОЧЕНЬ увеличить масштаб.Таким образом, я сделал 4 разных изображения (фактически PDF-файлы) с 4 разными размерами карты (самое большое имеет размер около 5700 x 6700px)
Я добавляю самое маленькое (обзор) к CATiledLayer, а затем меняю изображения наопределенные уровни масштабирования.
Пока что это вроде работает.
Проблема в том, что когда я отображаю самую большую карту (ближайший масштаб), плитки становятся ОЧЕНЬ большими, и для их рисования требуются годы.их (и в зависимости от уровней детализации / смещения приложение выдает в память предупреждение о сбоях).
Я попытался начать с самой большой карты и установить минимальный уровень масштабирования при первом отображении карты, но затем требуется много времени, чтобы нарисовать обзор, потому что плитки становятся очень маленькими (когда я не устанавливаю минимальное увеличение, все работает плавно).
Я пытался отрегулировать размер плитки при переключениикарты - но, видимо, это не работает.
Есть идеи, как мне это решить?;)
Спасибо за любую помощь ...
Редактировать:
Сейчас я пытаюсь определить два отдельных CATiledLayers, а затем поменять их местами, когда определенный уровень масштабированияДостигнута - но это приводит к сбою приложения?
[myContentView.layer replaceSublayer: tiledLayer with: tiledLayerBig];
о боже ...:)
Edit2:
Хорошо - все заработало - более или менее.Единственное, что происходит сейчас, это то, что CATiledLayer ведет себя странно, когда я добавляю самое большое изображение.Некоторое время он работает нормально, но когда рисуется определенное количество плиток, я получаю предупреждение о памяти, и приложение в конечном итоге вылетает.Я действительно ожидал бы, что невидимые плитки будут удалены, когда они покинут область просмотра.Похоже, этого не происходит, так что в конечном итоге все плитки будут прорисованы, что кажется слишком большим для памяти iPhone ...: (
Есть идеи, как решить эту проблему?