我试图创建一个简单的幻灯片,其中UIImageView的图像每三秒更改一次。首先,我在[self slideShow]
中致电viewDidLoad
。由于某种原因,我只运行一次计时器,我无法弄明白。以下是我的其他方法:
- (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是一个实例变量
答案 0 :(得分:5)
使用此实现 -
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:3.0
target:self
selector:@selector(imChange)
userInfo:nil
repeats:YES];
因为使用timerWithTimeInterval参数,您应该手动将计时器添加到 NSRunLoop 中,如下所示:
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];