2012-11-27 2 views
3

원근감을 얻기 위해 m34 변형 속성을 수정하는 레이어가 있습니다. zPosition을 변경하면 zPosition 속성을 설정할 때 크기가 변경되지 않지만 크기가 변경됩니다 (그러나 더 멀리 나타남). 그러나 CATransform3DTranslate를 사용할 때 크기가 변경됩니다.레이어의 zPosition 설정과 CATransform3DTranslate를 통한 레이어 변경의 차이점

왜 이런가요? 다음의 차이는 무엇 :

CATransform3D transform = CATransform3DIdentity; 
transform.m34 = 1.0/-4000; 
myLayer.transform = transform; 
myLayer.zPosition = -500; 

CATransform3D transform = CATransform3DIdentity; 
transform.m34 = 1.0/-4000; 
transform = CATransform3DTranslate(transform, 0, 0, -500); 
myLayer.transform = transform; 

내가 기대하는 방법 후자의 작품,하지만 내가 처음하지 않는 이유를 이해하고자합니다.

답변

6

z 배치는 원근감 그리기가 아닌 형제 계층의 그리기 순서에만 해당됩니다.이 레이어를 사용하면 레이어를 추가/제거하지 않고 "앞으로 가져 오기"/ "뒤로 보내기"효과를 얻을 수 있습니다.

+1

감사합니다. 어리석은 질문처럼 들리 겠지만 (나는 확실히 당신을 의심하지 않습니다), 어떻게 알 수 있습니까? 나는 웹이나 애플의 문서에서 다른 곳을 찾을 수 없었다. 건배. – Marc

+1

나는 과거에 똑같은 문제가 있었고 약간의 실험을했습니다. 그래서 당신이 옳았습니다. 내 대답에는 "공식적인"것이 없었지만 작동합니다;) –

관련 문제