실행되는 모든 작업을 추적하지 않고 어떻게 CGAffineTransform 작업을 여러 번 (애니메이션 블록에서) 실행합니까?연속적인 CGAffineTransforms를 추적하여 화면의 특정 지점에 도달하는 방법은 무엇입니까?
변환 작업은 x, y 좌표를 사용하지 않고 대신 시프트 값을 사용합니다. 따라서 "위치 2"에서 현재 번역 된 위치를 알지 못하면 "위치 3"으로 이동하기 위해 이동할 값을 어떻게 알 수 있습니까? 예를 들어
: - 위치 1. 내가가 번역 변환 설정 (768, 0)와 -90도 회전 -
가UIView의의 프레임에있다 (0, 0) 위치 2. 일부 시간이 경과하고 이제 (768, 1024)로 이동하고 -90도 (위치 3)를 회전하려고합니다.
위치 2에서 위치 3으로 이동하려면 어떻게 번역해야합니까?
- 전체 화면
- 위쪽 가장자리를 차지하고의 상단에있는 UIToolbar을 차지 UIView의 : 맥락에서 , 나는 다음과 같은 아이 패드보기를 달성하기 위해 노력하고있어 UIView
- iPad가 회전 할 때 UIView는 장치와 함께 유지되지만 도구 모음은 항상 화면의 위쪽 가장자리에 있도록 회전합니다.
나는 CGAffineTransform을 사용하여 번역 및 회전하여 도구 모음을 이동합니다. iPad를 여러 번 회전하는 경우를 제외하고는 훌륭하게 작동합니다. 첫 번째 translate/rotate는 완벽하게 작동합니다. 다음 값으로 변환 할 올바른 값을 모르기 때문에 변환이 해제됩니다.
업데이트 : 나는 UIView.transform 구조체의 현재 번역 (TX, TY) 값을하고 새 위치의 차이를 사용하는 경우, 작동처럼
것 같습니다. 그러나보기를 회전 한 경우이 작동하지 않습니다. tx 및 ty 값은 이전 로테이션 때문에 뒤집을 수 있습니다. 어떻게 처리해야할지 모르겠습니다.
업데이트 2 :
몇 가지 조사를하는, 나는 텍사스에서 원래의 회전되지 않은 포인트를 얻을 수 있다는 것을 발견했습니다 점의 복근 값을 받고 아마도 경우 x와 y를 교환하여 타이 UIView는 수직입니다. 이제 올바른 순서로 다음 변환 집합을 올바르게 적용하는 방법을 알아 냈습니다. 아무리 내가 그들을 concat, UIView 잘못 된 장소에서 끝나는 것 같다. 이 모든 것이 너무 복잡하고 더 쉬운 방법이 있어야하는 것 같습니다.
UIPopover 방향에 관한 마지막 문제는 1 개의 라이너로 해결할 수 있습니다. [[UIApplication sharedApplication] setStatusBarOrientation : orientation animated : NO]; (그러나, 모달 창은 여전히 이상하게 보인다.) – Mike