2014-05-09 3 views
2

레이어를 적용한 뷰가 m34 필드를 변경하고 x 축에서 회전 한 다음 x 및 y에 축척합니다. 그런 다음이 견해를 더 큰 수퍼 뷰에 추가했습니다. 내 문제는 새 뷰가 변환 된 뷰보다 계층 구조에서 더 높게 나타나더라도 더 큰 수퍼 뷰에 추가하는 모든 다른 뷰가 변형되거나 (변형 된 뷰의 프레임과 교차하는 경우) 변형 된 뷰에 의해 숨겨 지거나 겹쳐진다는 것입니다. 새로운 전망은 더 큰 superview의 배열의 subviews의 끝에 추가된다. 어떤 아이디어가이 행동의 이유는 무엇입니까? :-) 많이 고마워!변환 된 UIView가 계층 구조에서 상위에있는 다른보기와 겹치는 이유는 무엇입니까?

답변

5

3D 변환은 의사 3D를 만드는 데 사용됩니다. 그리고이 3D 공간에서는 레이어가 다른 레이어와 겹칩니다. 그 Z-pozition가있는 CALayer의 속성

@property CGFloat zPosition; 

Z 축에 대한 층의 위치를 ​​사용하여 변경한다. Animatable. 의 기본값은 0입니다.이 속성 값을 변경하면 화면의 레이어의 전후 순서가 바뀝니다. 이로 인해 프레임 직사각형이 겹치는 레이어의 가시성에 영향을 줄 수 있습니다 ( ). 이 속성 값은 포인트 단위로 측정됩니다.

1

보기 계층은 일련의 용지와 같습니다. 서로의 "위에"있을 수 있지만 실제 깊이는 없습니다. 레이어에 3D 변형을 넣으면 곧바로 깊이가 생기고 x 축 주위로 돌리면 다른 뷰 앞에 튀어 나오게됩니다.

레이어의 z 위치를 조정하여 다른보기 뒤로 이동할 수 있습니다.