我正在创建一个可以幻灯片播放多个视图,照片和类似内容的应用。如果用户没有做任何事情,那么它会每隔几秒更改一次视图。如果用户滑动,则幻灯片必须停止,并让他手动导航。
在后台,应用会检查新内容。如果有新内容可用,它必须向用户显示最新的视图(如果没有做任何事情)。
该应用程序全屏显示视图。如果用户点击视图,则会显示导航栏,以便他们更改设置。如果他们暂时不做任何操作,则幻灯片重新开始,导航栏将隐藏。
到目前为止,有3个计时器。现在,我想知道是否存在一种优雅的方式使它们不会相互干扰。
如果用户正在探索设置(在他离开之前)移动幻灯片显示不正确,在手动浏览每个视图时也不能打断他。
答案 0 :(得分:0)
只需创建3个计时器并根据您的算法进行管理。
@property (nonatomic, strong) NSTimer *slideshowTimer;
@property (nonatomic, strong) NSTimer *networkUpdatesTimer;
@property (nonatomic, strong) NSTimer *idleTimer;
在正确的时刻安排并以这种方式取消计算每个计时器,
时间表:
self.slideshowTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(slideshowTimerFired:) repeats:NO];
实现你传递给计时器初始化方法的选择器。
取消调度:
[self.slideshowTimer invalidate];
正如您所看到的,每个特定的计时器都有一个选择性的选择器。 并且要小心,因为NSTimer保留它自己的目标,直到它失效(未计划)。