1

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

编辑:定时器是一个实例变量

4

1 回答 1

5

使用这个实现 -

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

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

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
于 2013-04-28T17:26:34.833 回答