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

Tan*_*ley 1 cocoa-touch objective-c ios

我试图创建一个简单的幻灯片,其中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;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:Timer是一个实例变量

小智 5

使用此实现 -

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:3.0
                                    target:self
                                  selector:@selector(imChange)
                                  userInfo:nil
                                   repeats:YES];
Run Code Online (Sandbox Code Playgroud)

因为使用timerWithTimeInterval参数,您应该手动在NSRunLoop中添加计时器,如下所示:

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
Run Code Online (Sandbox Code Playgroud)