我希望在我的应用中有一个后台线程,只要应用程序正在运行,就会每5秒更改一次图像。有人能指出我的方向吗?我是线程新手。
答案 0 :(得分:1)
如果您正在使用UIImageView
并想要在图像之间进行动画更改,则甚至不需要计时器。 UIImageView可以自动在图像之间制作动画:
NSArray *images = [NSArray arrayWithObjects: [UIImage imageNamed: @"foo.png"],
[UIImage imageNamed: @"bar.png"],
nil];
yourImageView.animationImages = images;
yourImageView.animationDuration = 5.0s;
[yourImageView startAnimating];
详细信息记录在UIImageView docs中。
答案 1 :(得分:1)
NSTimer可能会执行您要执行的操作,但是,如果涉及该过程,NSTimer的调用通常会阻塞主线程,或者您需要从互联网获取某些内容以切换出来图片,你需要创建一个新的线程来做到这一点。
有关线程的信息,我强烈推荐CS193P Lecture on performance,它们详细介绍了NSThread,NSOperations等。
另外,来自apple,Threading programing Guide。
答案 2 :(得分:0)
你不需要一个线程。您可以使用比线程更简单的计时器来完成它。请参阅timer programming guide.
答案 3 :(得分:0)
您可以使用NSTimer。无需产生新线程:
[NSTimer scheduledTimerWithTimeInterval:5.0s target:self selector:@selector(updateImage) userInfo:nil repeats:YES];