这是我的图片幻灯片放映代码:
-(void)setImage
{
imageView.image = [UIImage imageNamed:[arrImages objectAtIndex:0]];
[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
}
-(void)changeImage
{
imageId = imageId + 1;
int id = imageId % [arrImages count];
CATransition * trs = [CATransition animation];
trs.duration = 0.5;
[trs setType:kCATransitionPush];
imageView.image = [UIImage imageNamed:[arrImages objectAtIndex:id]];
[imageView.layer addAnimation:trs forKey:kCATransition];
}
我在点击按钮时调用setImage()方法。
第一次点击按钮时效果很好但是在我点击按钮后,幻灯片的速度会增加。
任何人都可以告诉我为什么会这样。
感谢名单。
答案 0 :(得分:1)
首先采取全球计时器。
NSTimer *timer;
-(void)setImage
{
imageView.image = [UIImage imageNamed:[arrImages objectAtIndex:0]];
if (timer)
{
[timer invalidate];
timer = nil;
}
timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
}
试试这个:)