2013-02-28 5 views
0

여러 개의 하위 뷰가 포함 된 뷰가 있습니다. UIRotationGestureRecognizer를 사용하여 하나의 하위 뷰 또는 포함 된 뷰를 감지하고 사용자가 회전하도록 할 수 있습니다. 그러나 나는과 같이, 파단의 광장 수집을 회전 할 수 있도록하고 싶습니다 :하위 뷰의 회전 감지

초기 상태 :

Initial state

회전 오른쪽 사각 시계 반대 방향으로

Rotating upper right square

도착 방법

To get here

이 동작을 어떻게 수행 할 수 있습니까? 내 뷰 계층 구조는 중첩해야합니까?

모든 포인터를 부탁드립니다 :)

여기
+0

가있다 단일 뷰 계층 구조가 작동합니다. 더 복잡한 작업을 수행해야합니다. 예 : 회전이 진행 중일 때 회전 된 컬렉션의 각 타일에 적절한 변형을 적용하고 회전이 완료되면 배열의 타일 순서를 적절하게 변경합니다. 타일 ​​당 하나의 뷰/레이어가 내가 제안한 것입니다. – nielsbot

+0

회전중인 타일을 회전을 적용 할 임시 투명 부모 레이어로 이동 한 다음 회전 후 원래보기의 올바른 위치로 다시 이동하는 것이 약간 쉽습니다. – nielsbot

답변

0

내가 (의사)을 어떻게 할 것인지 : 당신이 * 사각형의 * 광장 컬렉션 ... 나는 생각하지 않는다 회전 할 수있는 경우

when rotation recognized: 
    create new_layer 
    new_layer.bounds = union_rect(frames of tiles to be rotated) 
    new_layer addSublayers:(tiles to be rotated) 

while rotation in progress: 
    new_layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1) 

when rotation complete: 
    (original view).layer addSublayers:(tiles to be rotated) 
    (tiles to be rotated) rearrange after rotation