Я пытаюсь реализовать свой собственный движок карты, используя CATiledLayer
+ UIScrollView
.Использование drawLayer для CATiledLayer: inContext:
В методе drawLayer:inContext:
моей реализации, если у меня есть определенное изображение плитки, необходимое для текущего ограничивающего прямоугольника, я сразу рисую его в контексте.
Однако, когда у меня нет одной доступной в структуре данных локального кэша, изображение плитки асинхронно запрашивается/загружается с сервера плитки и не рисует ничего в контексте.
Проблема заключается в том, что, когда я не рисую что-либо в контексте, эта часть представления отображается как пустая плитка. И ожидаемое поведение заключается в том, чтобы показать масштабированный масштабный вид плитки с предыдущего уровня масштабирования.
Если вы, ребята, столкнулись с какой-либо подобной проблемой и нашли какое-либо решение для этого, пожалуйста, дайте мне знать.
это на самом деле ответ или просто комментарий по этому вопросу? – thecoshman
Ну, я думаю, это ответ, так как у меня была та же проблема, и я решил это. У меня нет кода для показа здесь (я все еще на работе), но обходной путь действителен. Возможно, я не объяснил это должным образом. Я имею в виду, что я жду запроса, поэтому я всегда рисую что-то в этом контексте. Если он знает о влиянии на производительность, мой опыт в том, что это вообще не влияет. Но вы должны кэшировать эти фрагменты, чтобы избежать повторения запросов. Если вам нужен код, я могу предоставить его сегодня или завтра. – khose