-2
我想要顯示一個動畫圖像,一旦視圖加載了幾秒鐘,然後隱藏它並查看2個其他圖像,我已經使用數組來動畫化圖像然後設置一個定時器重複調用函數onTimer,在這個函數內我檢查圖像是否動畫一次,如果是這樣停止定時器和查看其他2張圖片功能不起作用,直到我在運行時點擊屏幕
它工作正常,當我運行項目,除了2圖像不會出現,直到我點擊屏幕!
她是代碼:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
outline.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"traffic.png"],
[UIImage imageNamed:@"red.png"],
[UIImage imageNamed:@"yellow.png"],
[UIImage imageNamed:@"green.png"], nil];
[outline setAnimationRepeatCount:1];
outline.animationDuration = 4;
[outline startAnimating];
timer = [NSTimer scheduledTimerWithTimeInterval: 1.0/30.0 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}
-(void) onTimer {
if (![outline isAnimating] == TRUE){ // if animation has been played once, do something
NSLog(@"animation stopped, do something");
rannan.image = [UIImage imageNamed:@"rannan.png"];
outline.image = [UIImage imageNamed: @"outline.png"];
[ timer invalidate];
// do something
}
}
它看起來像某種原因isAnimating未設置爲TRUE,直到我當項目運行
希望在屏幕上點擊,我會找到一個答案這一個:)
似乎有一個與你在上面它說,在第一行寫的代碼有問題:「物業表示層不能在向前CALSS發現對象CALayer「 ,並在if語句它說:」接收器類型「CALayer例如消息是一個前向聲明」 – Alsmayer 2013-02-12 18:15:44
我做了計時器檢查每1/30秒的情況下動畫凍結或任何原因,在任何原因,在這種情況下它不會在4秒後完成 – Alsmayer 2013-02-13 04:54:29
您需要導入QuartzCore框架才能使用CALayer。 – ggfela 2013-02-13 08:30:26