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)