[UIKit] clipsToBounds vs masksToBounds

jess·2023년 6월 7일
0

[iOS]

목록 보기
8/9

clipsToBounds vs masksToBounds

  • 둘 다 뷰의 내부 컨텐츠를 잘라내는 역할을 한다. 그러나 사용되는 위치와 동작 방식에 약간의 차이가 있다..

🖇️ clipsToBounds

  • UIView 클래스에 속하는 속성
  • 해당 뷰의 서브뷰가 뷰의 경계를 벗어나는 부분을 잘라낸다.
  • 즉, 뷰의 경계 내부에서만 서브뷰가 보이게 된다. 그러므로, clipsToBounds가 true로 설정되어 있으면 뷰의 경계를 벗어나는 컨텐츠는 보이지 않게 된다.

🖇️ masksToBounds

  • CALayer 클래스에 속하는 속성
  • 해당 레이어와 그 이하의 모든 레이어의 컨텐츠를 잘라냄. 따라서 masksToBounds가 true로 설정되어있으면 레이어의 경계를 벗어나 컨텐츠는 보이지 않게 된다. 이 속성은 UIView 클래스에서도 사용할 수 있으며, 해당 뷰의 레이어에 대해 설정하게 된다.

🗒️ 예시

button.clipsToBounds = true
button.layer.masksToBounds = false
  • button.clipsToBounds = true 로 설정되어있기 때문에 버튼의 경계를 벗어나는 컨텐츠는 잘리고 보이지 않게 됨
  • button.layer.masksToBounds = false 로 설정되어있기 때문에 버튼의 레이어가 경계를 벗어나는 그림자 효과를 표시할 수 있음

💫 정리

  • clipsToBounds : 뷰의 경계 내에서만 서브뷰를 보여줌 (뷰의 서브뷰에 적용)
  • masksToBounds : 뷰 또는 레이어의 경계 내에서만 콘텐츠를 보여줌 (뷰 또는 레이어 자체에 적용)

0개의 댓글