2012-04-20 3 views
1

CATransform3D에 대해 하나의 문제가 있습니다.Catransform3D 레이블을 하위보기로 사용

나는 라벨 B를 포함하는보기 A를 가지고 있습니다. B의 레이어 위치는 A의 중심입니다. B는 알림 메시지를 표시하는 데 사용됩니다. 물론 A를 180도 회전시키고 싶습니다. 물론 B의 텍스트는 거꾸로되어 있습니다. 그래서 B도 180도 회전시켜야합니다. 모든 것이 곧장 앞으로 보이는 시뮬레이터에서 잘 작동합니다.

하지만 기기에로드 할 때 A와 B는 회전했지만 B의 위치는 변경되었습니다. 이제는 B의 절반 만 볼 수 있고 나머지 절반은 A 밖에 있습니다.

B는 180도 뒤집 혔던 A의 좌표계와 관련되어 있기 때문에 A를 돌릴 때 B의 위치가 변경됩니다.

그러나이 문제를 해결하는 방법에 대한 아이디어가 있거나 누군가 더 잘 접근 할 수있는 방법이 있는지 알고 싶습니다.

대단히 감사합니다.

UPDATE

B의 위치가 이동됩니다 난 아직도 왜 알아낼 수 없습니다,하지만 난 같은 애니메이션을 구현하는 또 다른 방법을 함께했다. 조금 까다 롭습니다.

키가 animation.autoreverse인데 라벨의 수퍼보기를 Pi로 회전하면 라벨의 텍스트가 거꾸로 뒤집 힙니다. 그래서 저는 Pi/2로 수퍼 뷰를 회전시키고 동일한 지속 시간을 유지하고 autoreverse = YES을 설정하는 것이 었습니다. Pi/2로 수퍼 뷰를 회전시킨 다음 다시 초기 상태로 회전시키는 것입니다. 결과는 뷰가 전혀 회전하지 않지만 사용자의 시력은 회전된다는 것을 알 수 있습니다.

답변

0

뷰의 하위보기 및 하위보기가 항상 두 배로 된 애니메이션 (특히 알파 및 가운데 변경)에 잘 응답하지 않는 것으로 나타났습니다. (보통보다 약간 비싸기 때문에) UIViewAnimationOptionAllowsAnimatedContent를 사용해야합니다. 애니메이션이 적용된 '스냅 샷'대신 강제로 다시 그립니다.

+0

나는 동의합니다. 그러나 나는 그 (것)들을 일하게하는 방법을 찾고 싶다. 아무것도 얻으면이 스레드를 업데이트 할 것입니다. 당신의 도움을 주셔서 감사합니다. – Jason

+0

좋은 소리. 애니메이션은 iOS에서 까다 롭습니다.하지만 제대로 해내면 정말 멋집니다. – CodaFi

관련 문제