这是我的图像幻灯片放映代码:
-(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()方法。
第一次单击按钮时效果很好,但是此后每次单击按钮时,幻灯片放映的速度都会提高。
谁能告诉我为什么会这样。
谢谢
最佳答案
首先在全局使用一个计时器。
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];
}
试试这个:)
关于ios - iOS:图片幻灯片放映,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25679338/