iOS/UIKIT

view.layer.masksToBounds = true와 view.clipsToBounds = true 차이

밤새는 탐험가89 2024. 8. 29. 21:52

1. clipsToBounds = true

  • 적용 대상: UIView 자체
  • view.clipsToBounds = true는 해당 UIView의 경계를 넘어서는 모든 하위 뷰나 콘텐츠가 잘리도록 설정합니다.
  • 이 속성을 true로 설정하면 뷰의 경계를 벗어나는 하위 뷰들이 화면에 보이지 않게 됩니다.
  • 이는 주로 하위 뷰들을 컨트롤하기 위한 목적으로 사용됩니다.

 

쉽게 말로 하면 superView가 있고, 그 안에 subView가 있다고 가정해보자

superView에 clipsToBounds = true 설정하고, suvView가 superView 근처에 걸쳐 있다면? 

그러면 걸쳐져 있는 부분만 보이고 그 외 부분은 보이지 않는다. 

 

정리하면 clipToBounds의 true / false 차이는 superView 경계 외 부분을 보여줄지 말지 차이이다.

 

 

2. layer.masksToBounds = true

  • 적용 대상: CALayer
  • view.layer.masksToBounds = true는 뷰의 CALayer에 적용되며, 해당 레이어의 경계를 넘어서는 서브레이어나 콘텐츠가 잘리도록 설정합니다.
  • 이는 UIView의 layer 속성에 적용되기 때문에, 직접적으로 CALayer와 관련된 작업을 할 때 더 많이 사용됩니다. 예를 들어, UIView에 그라디언트 레이어를 추가하거나 그림자(shadow)를 적용할 때 유용합니다.
  • 기본적으로, clipsToBounds = true를 설정하면 내부적으로 layer.masksToBounds = true도 활성화됩니다. 하지만, layer.masksToBounds = true를 사용하면 더 세부적으로 CALayer 수준에서 클리핑을 제어할 수 있습니다.

 

만약에 superView에 그림자를 만든다고 가정했을 때, layer.maskToBounds = true 한다면? 그러면 그림자가 보이지 않는다.

 

 

https://babbab2.tistory.com/47

 

iOS) ClipsToBounds vs MasksToBounds

안녕하세요 :)?????????????? 소들입니당 아 요즘 iOS 공부 왤케 재밌지 ㅎㅎㅋ 이번에 공부할 내용은 이 두가지 입니다 ㅎㅎㅎㅎ clipsToBounds는 스토리보드에서도 변변찮게 보던 놈임 요롷게? 👀 체크

babbab2.tistory.com