2010-02-02 4 views
2

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

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

ответ

3

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

Смежные вопросы