728x90
Zindex(Z position)을 이용하여 뷰의 계층을 제어 할 수 있다.
이렇게 A와 B의 위치를 교환하여 A뷰를 앞으로 전환 할 수 있다.
단, 같은 부모뷰에 속해 있어야 한다.(같은 계층에 있어야 한다.)
코드를 이용하는 두가지 방법이 있다.
Method 1
AView.bringSubviewToFront(BView)
- 뷰의 인덱스 위치를 변경 해준다.
Method 2
Bview.layer.zPosition = 1
- 제일 앞에 보이는 뷰의 포지션을 움직여 준다.
예를 들어
이렇게 버튼이 뒤에 있고 뷰가 앞에 있을 때,
button.layer.zPosition = 1000
이라고 해주면
이렇게 버튼이 위로 오게 되지만 터치이벤트는 움직이기 전 뷰에 가려지지 않은 부분에서만 동작한다.
하지만 , self.view.bringSubviewToFront(button)
해주면,
ㅡ여기에서 self.view는 슈퍼뷰!ㅡ
뷰의 인덱스 위치가 변경 되면서 보여지는 것 그대로 버튼이 주황색 뷰 위에 위치하면서 초록색 영역의 버튼 터치이벤트가 동작한다.
만약,
zPosition과 bringSubviewToFront가 동작하지 않는 다면
확인 해볼수 있는 이유
-> 계층 관리가 필요한 객체는 모두 스토리보드를 통해 작성했거나,
코드를 통해 작성되어야
정상적으로 동작한다.
참고>
https://developer.apple.com/documentation/uikit/uiview/1622541-bringsubviewtofront?language=objc
https://stackoverflow.com/questions/4631878/how-to-set-iphone-uiview-z-index
728x90
'iOS > iOS' 카테고리의 다른 글
Firebase DynamicLinks (0) | 2022.04.01 |
---|---|
Delegate 사용 (0) | 2022.03.28 |
UILable cornerRadius (0) | 2022.03.16 |
UIView 값이 틀릴 때 (0) | 2022.03.14 |
UIButton 상태에 따른 속성 적용(storyboard) (0) | 2022.02.24 |
댓글