2010-05-12 4 views
1

У меня есть CATiledLayer внутри UIScrollView, и все работает нормально. Теперь я хочу добавить поддержку для отображения различных фрагментов для трех уровней масштабирования.CATiledLayer: Определение уровнейOfDetail, когда в drawLayer

Я установил levelsOfDetail 3, а размер моей плитки 300 x 300. Это означает, что мне нужно предоставить три набора плиток (я поставляю PNG) для покрытия: 300 x 300, 600 x 600 и 1200 x 1200 .

Моя проблема заключается в том, что внутри "(void) drawLayer: (CALayer *) layer inContext: (CGContextRef) ctx" Я не могу определить, какой уровеньOfDetail в настоящее время рисуется. Я могу получить границы, требуемые в настоящее время с помощью CGContextGetClipBoundingBox, и обычно это запрашивает прямоугольник для одного из указанных выше размеров, но на краях слоев плитки обычно меньше, и поэтому это не очень хороший метод.

В принципе, если я установил levelsOfDetail 3, как узнать, запрашивает ли DrawLayer уровень 1, 2 или 3, когда он вызван?

Thanks,

Russell.

+0

Вы смогли исправить эту проблему? Я столкнулся с такой же проблемой с давних пор ... – iOSDev

+0

Да, прокрутите вниз! –

ответ

2

В конце концов я это испробовал.

Получить CTM для графического контекста и посмотреть его масштаб (например, элемент a).

+0

Hi Russell, Я использую CATiledLayer для рисования страниц из pdf. Она работает нормально, но когда я вращает устройство в журналах консоли я получаю 3 ошибки, 1.wait_fences: не удалось получить ответ: 10004003 2. : FT_Select_Charmap не удалось: ошибка предупреждение памяти 6. 3.Received. Level = 2 У вас есть представление о том, как разрешить эти ошибки. Спасибо – CKT

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