2012-05-24 1 views
1

X 축에서 UIImageView에 3D 애니메이션을 적용하려고하므로 180도 회전합니다. 90 degres에서 나는 이미지를 바꾸고 싶다. (그 이유는 2에서 애니메이션을 "파산"한 이유입니다).3D 애니메이션과 관련된 문제

애니메이션이 잘 작동하지만 두 번째 이미지가 거꾸로 그려지는 것이 문제입니다. 어떤 아이디어를 그려야 정상적으로 이미지를 그릴 수 있습니까? 당신이보기를 회전하는 3D 경우

여기 내 코드

i++; 
[UIView animateWithDuration:2 animations:^{ 

    self.imageView.layer.transform = CATransform3DMakeRotation(-M_PI/2 , 1, 0,0); 

} completion:^(BOOL finished){ 

    UIImage *bottomI = (UIImage *)[bottom objectAtIndex:i]; 
    self.second.image =bottomI; 

    [UIView animateWithDuration:2 animations:^{ 

      imageView.layer.transform = CATransform3DMakeRotation(M_PI , 1, 0,0); 

    } completion:^(BOOL finised){ 

    }]; 

}]; 

답변

1

뷰 애니메이션 대신 그룹화 된 CABasicAnimation 객체를 사용했지만 동일한 트릭이 작동해야합니다. 첫 번째 90도를 뷰/레이어로 회전 한 다음 애니메이션없이 180도 회전 한 후 두 번째 절반을 시작합니다. 애니메이션. 이렇게하면 애니메이션의 후반부에서 실제로 뷰/레이어의 앞면이 마치 뒤쪽면처럼 회전하여 뒤쪽으로 보이지 않게됩니다.

보기/레이어가 이미지를 전환하고 180도 회전 할 때 뷰어의 가장자리에 나오기 때문에 사용자는 이러한 변경 사항을 볼 수 없습니다. 나머지 90도 회전하면 새 이미지가 제 위치에 있으며 뷰/레이어의 뒷면이 드러난 것처럼 보입니다.

완벽하게 작동합니다.

0

, 그것은 현실에서 물체를 회전 비슷합니다. 따라서 회전이 90도 이상되면 객체를 뒤집을 수 있습니다. 그래서 두 번째 이미지가 거꾸로 된 것입니다. 가장 간단한 것은 그것을 추가하기 전에 아핀 180도를 회전하는 이미지의 변환 설정하는 것입니다

편집 :. 내 어리 석음 .... 내가 의도

this

bottomI.orientation = UIImageOrientationDown 
했다
+0

UIImage에서 CGAffineTransformMakeRotation을 수행 할 수 없습니다. – user1078065