我试图创建一个简单的幻灯片,其中UIImageView的图像每三秒改变一次。首先在viewDidLoad
中取[self slideShow]
。定时器我只运行一次,出于某种原因,我不能弄清楚。以下是我的其他方法:
- (void)slideShow
{
timer = [NSTimer timerWithTimeInterval:3.0
target:self
selector:@selector(imChange)
userInfo:nil
repeats:YES];
[timer fire];
}
- (void)imChange
{
NSLog(@"%d",slideNum);
switch (slideNum) {
case 0:
imView.image = img1;
break;
case 1:
imView.image = img2;
break;
default:
break;
}
slideNum++;
if (slideNum > 1) {
slideNum = 0;
}
}
编辑:Timer是一个实例变量
使用这个实现-
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:3.0
target:self
selector:@selector(imChange)
userInfo:nil
repeats:YES];
因为使用timerWithTimeInterval参数,你应该在NSRunLoop中手动添加计时器,像这样:
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];