0

我正在制作一个应用程序,它可以幻灯片显示几个视图、照片和类似的东西。如果用户不做任何事情,那么它每隔几秒就会改变一次视图。如果用户滑动,则幻灯片必须停止,让他手动导航。

在后台,应用程序检查新内容。如果有新内容可用,它必须向用户显示最新的视图(如果没有做任何事情)。

该应用程序全屏显示视图。如果用户点击视图,则会显示导航栏,以便他们可以更改设置。如果他们有一段时间什么都不做,那么幻灯片会重新开始,并且导航栏会被隐藏。

到目前为止,3个计时器。现在,我想知道是否有一种优雅的方法可以让它们不相互干扰。

如果用户正在浏览设置(在他离开之前)移动幻灯片是不正确的,在手动浏览每个视图时也不能打断他。

4

1 回答 1

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 会保留它自己的目标,直到它失效(计划外)。

于 2013-02-24T00:03:23.813 回答