2010-09-01 4 views
1

Я пытаюсь нарисовать полупрозрачную форму над изображением.Максимальный размер CAShapeLayer?

У меня есть UIView, у которого есть содержимое слоя, установленное на изображение, с подслоем CAShapeLayer, у которого установлен путь к форме. Есть несколько из этих UIViews внутри родителя UIView, который является дочерним объектом масштабирования UIScrollView.

Все в порядке на iPhone, но когда я увеличиваю масштаб на iPad, UIViews становится довольно большим, а CAShapeLayers исчезают. Изображения отображаются нормально. Я догадался, что проблема была проблемой размера, поэтому я разделил CAShapeLayers на две части, так что была левая и правая стороны. Теперь они оба отображаются, если пользователь не масштабируется на самом деле, например, пока «не зажимает» выше моего максимального увеличения, как раз перед тем, как они вернутся назад.

Разделение моего CAShapeLayers дальше выполнимо, но немного неудобно. Итак, у меня есть несколько вопросов:

  1. Есть ли ограничение максимального размера для CAShapeLayers? Почему это не относится к содержимому образа слоя?
  2. Зачем нужен повторный чертеж CAShapeLayers во время масштабирования в пределах UIScrollView? Не следует ли растрировать весь вид зуммирования (UIScrollView's) на дюйм? Как я могу это сделать?

ответ

1

Оказывается, максимальная площадь на моем компьютере (2006 MacBook) составляет 1024 * 1024.

Полноэкранная форма на iPad составляет 1004 пиксела, что дает максимальную ширину около 1044 пикселей, например, если вы хотите иметь большую форму в горизонтальном прокрутке.

При увеличении масштабирования при резком увеличении фактическая высота формы увеличивается, при этом максимальная ширина составляет около 250 пикселей. Это уже, чем хотелось бы, но выполнимо.

Это может отличаться от физического iPad, но это ограничения в симуляторе на моей панели разработчиков.

+1

Я считаю, что нет ограничений для CAShapeLayer на iPad-устройстве, но в симуляторе есть ограничение 1024 x 1024. Я фактически использую 2048 x 2048 в iPad 3.2, и он отлично работает. Я просто потратил 2 часа на то, чтобы решить проблему, которой у меня не было, только потому, что я еще не проверял ее на устройстве iPad. Ваша записка спасла меня много времени. Я планировал изменить сценарий, чтобы ограничить форму до 1024 x 1024. –

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