Масштабирование с помощью CATiledLayer в UIScrollView - PullRequest
2 голосов
/ 02 февраля 2010

Я реализую приложение карты, подобное приложению карт, и я пытаюсь добавить масштабирование. У меня есть несколько уровней детализации, например 6, и я хочу использовать соответствующий уровень для текущего масштаба увеличения. Я использую CATiledLayer в UIScrollView. Пока что я могу установить минимальное / максимальное увеличение в UIScrollView, вызывается drawLayer, и я рисую соответствующую плитку, но для этого используется только мой первый уровень карты. Теперь я хочу установить levelOfDetail в CATiledLayer, чтобы я мог использовать соответствующий уровень детализации.

Мой вопрос: как мне узнать, на каком уровне я должен рисовать? TileSize CATiledLayer всегда одинаков, как и прямоугольник отсечения. Я могу видеть, когда drawLayer вызывается для нового уровня детализации, но как узнать, что это за уровень.

1 Ответ

3 голосов
/ 09 февраля 2010

Установите уровниOfDetail и Bias заранее.Затем при вызове для рисования посмотрите на рамку вида, масштабируемую представлением с прокруткой, и сравните ее с границами.Это должно дать вам информацию, необходимую для определения того, что вы рисуете.Также посмотрите на границы пути клипа, чтобы увидеть, «где» следующий CATILLayer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...