저는 작업중인 카드 게임에 기본 애니메이션을 추가하고 있습니다. (내 첫 번째 아이폰 앱)애니메이션을 시작하기 전에 iPhone 애니메이션 컨테이너보기 수정하기
rect1에서 rect2로 이동하면서 image1에서 image2로 넘겨주는 사용자 정의 UIView 클래스 "AnimationContainer"를 만들었습니다. 나의 궁극적 인 목적은 동시에 4 가지 컨테이너를 동시에 전환하는 것입니다.
내가 겪고있는 문제는 애니메이션이 image1을 표시하지 않는다는 것입니다. 따라서 뒤집기 전환의 마지막 절반 만 나타납니다.
그러나 초기화를 터치하여 애니메이션을 처음 재설정하면 모든 것이 완벽하게 작동합니다. 다시 말하면, Flip을 반복해서 누르면, 나는 전환의 절반 만 얻습니다. 그러나 Reset을 먼저 누르면, 모든 것이 한 플립을 위해 완벽하게 작동합니다.
그래서 어떻게 애니메이션을 올바르게 재설정 할 수 있습니까?
다음은 코드, 스크린 샷 및 전체 링크입니다 : Project Zip File 700k.
alt text http://www.robsteward.com/cardflip.jpg
- (void)displayWithImage1 { //RESET button calls this
self.frame = rect1;
[image2 removeFromSuperview];
[self addSubview:image1];
[self setNeedsDisplay]; //no help: doesn't force an update before animation
}
- (void)runTheAnimation { //FLIP button calls this
[self displayWithImage1]; //<---this is what the reset button calls
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:transition forView:self cache:NO];
self.frame = rect2;
[image1 removeFromSuperview];
[self addSubview:image2];
[UIView commitAnimations];
}
감사합니다!
나는 반쯤 생생한 해결 방법을 생각해 냈습니다. 나는 "더미"애니메이션을 추가하고 클래스를 setAnimationDidStopSelector에 대한 델리게이트로 만들었습니다. 더미 애니메이션은 지속 시간이 0.0이고 뷰를 rect1로 이동합니다. 더미의 스톱 선택기가 호출되면, 거기에서 "실제"애니메이션 플립 코드를 수행합니다. 완전히 작동하며 적어도 4 개가 동시에 실행될 수 있습니다. 예, 저요. LOL – Rob
해결 방법으로 인해 최대 0.5 초의 지연이 발생할 수 있으므로 현상금을 시작합니다. 하나의 전환에서 두 개의 이미지를 컨테이너보기로 보내고 한 이미지를 다음 이미지로 넘기는 방법이 있어야합니다. – Rob