简单UIImageView幻灯片IOS计时器问题



我试图创建一个简单的幻灯片,其中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];

最新更新