Отключить отсечение в CALayer - PullRequest
3 голосов
/ 28 декабря 2010

Как отключить отсечение в CALayer? Я переопределяю drawInContext, но я хочу иметь возможность рисовать линии, которые выходят за границы CALayer, и я не хочу делать отдельный проход рисования на родительском слое, чтобы это произошло.

Ответы [ 2 ]

5 голосов
/ 28 декабря 2010

Вы не можете рисовать, используя Кварц за пределами CALayer или UIView. Как предполагает Ноа, вам нужно расширить границы слоя на определенную величину, чтобы нарисовать это.

Вы все еще можете сделать это без необходимости рисования в родительском слое, если для свойства masksToBounds вашего родительского слоя установлено значение NO. Таким образом, даже если ваш подслой выходит за пределы родительского слоя, он все равно будет нарисован правильно.

4 голосов
/ 28 декабря 2010

Ну, у CALayer есть свойство masksToBounds (которое, установленное на NO, отключает ограничение по умолчанию к границам слоя), но я не думаю, что это влияет на рисование самого слоя - только отсечениеего подслоев.Если по какой-то причине вы не можете расширить рамку самого слоя, вам нужно установить это свойство на слое, добавить больший подслой с размерами, в которых вы хотите рисовать, и переместить код для рисования на этот подслой..

...