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 > UIKIT' 카테고리의 다른 글
DispatchQueue.main.async의 사용 위치와 방식에 따른 차이 (0) | 2024.08.31 |
---|---|
UIButton.Configuration을 사용하여 버튼 만들기 (0) | 2024.08.29 |
Auto Layout을 사용하는 이유와 장점은 무엇인가요? (0) | 2024.08.21 |
테이블 셀을 눌렀을 때 상세페이지로 데이터 전달하기 (1) | 2024.08.21 |
API를 통해 받아온 데이터를 배열로 저장하고, 이를 갖고 다른 메서드에서는 어떻게 사용할 수 있나? (0) | 2024.08.20 |