Обрезать несколько слоев в заданный кадр?(CoreAnimation / Quartz2d) - PullRequest
1 голос
/ 07 марта 2012

Я не уверен, как это сформулировать, или какова правильная терминология.Надеюсь, я смогу объяснить ...

Настройка:

  • По сути, у меня есть UIView, состоящий из нескольких слоев CALay.
  • На каждом слое есть объект (пользовательский отрисовка с переопределением метода Draw)
  • Я анимирую, используя масштабное преобразование (т.е. растем), поэтому он растет, пока не расширится до полного размера.рамки родительского элемента
  • И каждый слой должен быть обрезан, когда он достигает края UIView, поэтому он не отображается за границей UIView

Надеюсь, это изображение может объяснить, что я пытаюсь сделать: Example image

1 Ответ

2 голосов
/ 07 марта 2012

Отключено ли свойство clipsToBounds? Из документов UIView:

clipsToBounds Логическое значение, которое определяет, являются ли подпредставления ограничивается пределами получателя.

@ свойство (неатомное) BOOL clipsToBounds

Обсуждение Установка этого значения в YES приводит к обрезке подпредставлений до границы получателя. Если установлено значение NO, подпредставления, чьи кадры расширяются за видимые границы приемника не обрезается. По умолчанию значение NO.

Вы можете включить это, установив свойство в коде, или, если представление происходит из xib-файла, в инспекторе Атрибутов в Интерфейсном Разработчике есть флажок «Clips Subviews».

...