Свойство UIView clipsToBounds: повышает ли оно производительность? - PullRequest
16 голосов
/ 04 мая 2009

В документации сказано, что свойство clipsToBounds UIView будет обрезать рисунок до границ, или, точнее, из-за того, что subView не может рисовать вне границ superView.

Звучит хорошо, но что это значит на практике?

Если я установлю это на ДА , то мой subView автоматически будет рисовать только те части, которые не выходят за границы superView. таким образом, это увеличивает общую производительность, или мне все еще нужно убедиться, что я не создаю никакие представления, которые не видны, то есть внутри UIScrollView?

Ответы [ 3 ]

24 голосов
/ 04 мая 2009

Я думаю, что все наоборот: включение отсечения снижает производительность, потому что необходимо настроить маску отсечения. Я смутно помню, что где-то читал, но сейчас не могу найти.

1 голос
/ 03 января 2014

Вариант использования для clipsToBounds больше подходит для подпредставлений, которые частично находятся за пределами основного вида. Например, у меня есть (круговое) подпредставление на краю родительского (прямоугольного) UIView. Если для clipsToBounds установлено значение YES, будет показана только половина круга / подпредставления. Если установлено значение NO, весь круг будет отображаться. Просто столкнулся с этим, поэтому хотел поделиться.

0 голосов
/ 09 ноября 2012

(Возможное) снижение производительности является детерминированным, только если вы знаете иерархию представлений. Как упоминалось выше, обычно средство визуализации будет использовать циклы графического процессора для рисования представления, ЕСЛИ в некоторых представлениях в иерархии не используется drawRect:. Это не влияет на приложение OpenGL ES, так как drawRect: опускается в приложениях этого типа.

Насколько я понимаю, определение и отображение обрезанной области может занять меньше циклов, чем вычисление / рисование / смешивание всего вида. Начиная с OpenGL ES 2.0 отсечение можно рассчитывать в графическом процессоре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...