후 난 당신이 여기에서 볼 수있는 것과 같은 접이식 페이스 북 메뉴를 만들기 위해 노력하고있어. 나는 2 층이 있습니다 - 왼쪽 층에서 앵커 포인트가 {1, 0.5} - 권리 층에서 앵커 포인트가 {0, 0.5}CATransform3DRotate CATransform3DTranslate
나는 그들이 내 주요의 중간에 접을 수 있습니다 그런 문제없이보기 : CGFloat width = self.view.frame.size.width; CGFloat destinationWidth = slider.value * width;
CGFloat hypothenuse = self.view.frame.size.width/2.0f;
CGFloat adjacent = destinationWidth/2.0f;
CGFloat opposite = sqrtf(powf(hypothenuse, 2)-powf(adjacent, 2));
CGFloat marginLeft = (width - destinationWidth)/2;
CGFloat angle = asinf(opposite/hypothenuse);
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0f/-4000.0f;
rightSide.layer.transform = CATransform3DRotate(CATransform3DTranslate(transform,0,0,-opposite),-angle, 0, 1, 0);
leftSide.layer.transform = CATransform3DRotate(CATransform3DTranslate(transform,0,0,-opposite),angle, 0, 1, 0);
이것은 완벽하게 작동합니다. CATransform3DTranslate (변환, -marginLeft, 0,도 반대)
레이어는 여전히 좋은 Z 번역에 접어 있지만 어색한 각도로 끝납니다 :이 같은 x 축에 내 레이어를 번역 할 때 문제가 온다 전체 뷰가 회전 된 경우
이것은 분명히
미리 감사드립니다 ... (내가 M34, 그것은 "작품"으로 설정하지 않는 경우)하지만 난 그것을 보상하는 방법을 알아낼 수 없습니다 관점에 연결되어 있습니다!건배,
TeuBeu2 당신은 순서대로 4 변환을 작성할
을 테스트하지 않은하지만 난 그것을 변경할 수 없습니다. 기본보기 앵커 포인트를 수정하려고 시도했지만 작동하지 않는 것 같습니다 ... – TeuBeu2
z 변환에 대해 -opposite를 사용하면 어떻게됩니까? – Nico