我想创建一个简单的翻译动画到UIImageView。 起初,我愿意使用[UIView动画]类,但是我意识到它不能对动画过程中的事件(例如与其他对象的简单碰撞)进行足够的控制。可可触摸 - 用定时器动画
我当时想过使用一个简单的线程,将修改我的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的命令显示正确的坐标在图像的中心。 Ani的想法为什么? 也许这是错误的方法?
你试过把[view setNeedsDisplay]放进去吗?在那里?通常情况下,如果您更改框架,视图会重新绘制,但这可能值得一试。 – Robin 2011-03-11 11:10:47
我试图插入那一行,没有任何变化。有时看起来像我的形象移动一点点,我不明白我错了什么.. – Lorenzo 2011-03-11 11:26:35