Maskstobounds против clipstobounds [дубликат]
этот вопрос уже есть ответ здесь:
в моей точке обоих clipstobounds и maskstobounds делает ту же работу.
Я не мог найти никакой разницы между их.
кто-нибудь любезно объяснит, как оба разные.
2 ответов
masksToBounds
любые подслои слоя, которые выходят за его границы, будут обрезаны до этих границ. Подумайте о слое, в этом случае, как о окне на его подслоях; ничего за пределами краев окна не будет видно. Когда masksToBounds нет, нет отсечки.
когда значение этого свойства равно true, Core Animation создает неявную маску отсечения, которая соответствует границам слоя и включает любые эффекты радиуса угла. Если также указано значение свойства mask, две маски умножаются для получения конечного значения маски.
вы можете получить больше информации в ссылка на API.
clipToBounds
вариант использования для clipsToBounds больше для подвидов, которые частично находятся вне основного вида. Например, у меня есть (круговое) подвидение на краю его родительского (прямоугольного) UIView. Если вы установите clipsToBounds в YES, будет показана только половина круга / подвида. Если установлено значение нет, появится весь круг. Просто столкнулся с этим так хотел поделиться
для получения дополнительной информации пример ссылки
Clipstobounds : если для clipsToBounds установлено значение YES, я буду видеть только ту часть подвида, которая соответствует границам супервизора. В противном случае, если clipsToBounds установлен в NO, я увижу весь подзор, даже части вне супервизора
Maskstobounds: Если свойству masksToBounds присвоено значение YES, все подслои слоя, выходящие за его границы, будут обрезаны до этих границ. Подумайте о слое, в этом случае, как о окно на его подслои; ничего за пределами краев окна не будет видно. Когда masksToBounds нет, отсечение не происходит, и любые подслои, которые выходят за пределы границ слоя, будут видны полностью (если они не выходят за пределы любого суперслоя, у которого включена маскировка).