我想創建一個簡單的翻譯動畫到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