UIImageView에 간단한 번역 애니메이션을 만들려고합니다. 처음에는 [UIView animation] 클래스를 사용하고 싶었지만 애니메이션 중에 이벤트 (예 : 다른 객체와의 단순한 충돌)를 충분히 제어 할 수 없다는 것을 깨달았습니다.코코아 터치 - 타이머로 애니메이션하기
이 :
나는 다음 애니메이션이 완료되거나 일이 일어날 때까지 (충돌 또는 객체 자체가 사라지는 참조) 때까지 잠을 반복 한 후, 센터 내있는 UIImageView의 좌표 수정 것 간단한 스레드를 사용하는 방법에 대한 생각 내가 쓴 코드입니다 :
-(void)animateImageView:(UIImageView*)view{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
float totalTime=6.0f;
float elapsedTime=0;
while(totalTime<=elapsedTime){
if(conditions){...}//here are my checks
CGPoint newCenter=CGPointMake(view.center.x+10, view.center.y);
view.center=newCenter;
NSLog(@"%f",view.center.x);
elapsedTime+=0.1;
[NSThread sleepForTimeInterval:0.1];
}
[view performSelectorOnMainThread:@selector(removeFromSuperview) withObject:nil waitUntilDone:YES];
[pool release];
}
사실은, 내 이미지가 이동하지 않습니다,하지만 이미지의 중심이 어디 NSLog 명령은 오른쪽 좌표. 아니 아이디어 왜? 아마도 이것이 잘못된 접근입니까?
[view setNeedsDisplay]를 넣으려고 했습니까? 거기에? 일반적으로 프레임을 변경하면보기가 다시 그려 지지만 시도해 볼 가치가 있습니다. – Robin
그 행을 삽입하려고했지만 아무 것도 변경되지 않았습니다. 때로는 내 이미지가 조금 움직이는 것처럼 보입니다. 나는 틀린 것을 이해할 수 없습니다. – Lorenzo