我需要一个按钮来执行不同的操作,具体取决于观看视频的人数。
因此,例如在0-20秒,它做了事情A. 然后在20-25它做了事情B. 和25-32事情C
我可以制作一个计时器,以特定的时间间隔关闭并触发不同的信息,以启用/禁用我的按钮或更改他们的操作吗?
或者我应该开火并同时启动另一个计时器并更改我的按钮所做的事情并形成一系列事件?
谢谢!
答案 0 :(得分:2)
执行if语句,如果计时器> 0和< 20秒使按钮事件为a,如果计时器为> 20且< 25 make按钮事件b,依此类推。 这样,当用户根据计时器开启的时间点击按钮时,无论如何它都会发生相应的改变。
你能做什么但我认为更方便的是允许用户在任何时候按下按钮但是在执行任何代码之前检查定时器的当前位置,并且如果定时器是> 0但是<然后执行EVENT a,并且如果计时器> 20但是< 25然后执行事件B这样你不必更改按钮,只需通过检查计时器的当前位置来重定向执行的代码。这种方式只涉及一个计时器。
希望这是有道理的。
它比这更简单,而不是让计时器同时触发,创建更多的计时器意味着需要创建更多的对象意味着需要管理更多的东西。
但是,如果您想要触发多个事件,而您更喜欢这样做,那么请执行以下操作:
http://howtomakeiphoneapps.com/2010/03/how-to-make-an-egg-timer-for-your-iphone/
抱歉,我用psuedo风格写了这个,但我相信你已经足够明白我在说什么了。
<强> PK 强>
答案 1 :(得分:1)
NSTimer
有一个方法setFireDate:(NSDate *)date
,因此您可以拥有一个计时器,并根据需要重新安排下一个计时器,而不是创建一个计时器链。只需确保您的计时器间隔足够大,以便在您有机会重新安排计时器之前计时器不会启动。
答案 2 :(得分:1)
默认操作是A. 为B设置一个计时器,为C设置一个计时器。当B计时器触发时将当前操作设置为B.当C-Timer触发设置当前操作为C.
答案 3 :(得分:1)
对于Stage Time我设置了一个重复计时器作为倒数计时器。在每次开火时,我会检查剩余的时间并适当地更新各种UI位。
对于你的应用程序,只有在未来版本中我有其他基于时间的功能的计划,或者我想动态更改事件A,B和C的时间时,我才会使用重复计时器方法。否则,我' d可能在开始时设置三个定时器,每个定时器用于事件A,B和C.这样,管理时间分区的逻辑全部在一个地方,可能是AppDelegate,按钮更改逻辑都可以存在于View Controller中
答案 4 :(得分:0)
我现在正在做的是以1为间隔启动计时器并重复:是 当它触发时,它调用一个简单地增加秒数的方法(int) 在这个每1秒调用一次的方法中,我将使用switch语句来检查秒的值,如果它是某个值,它将暂停我的播放器并使计时器无效。 这应该暂停视频并停止增加秒数。
然后我会有一个按钮让用户恢复视频,该视频将播放视频并再次开始相同的计时器并继续增加秒数。
我唯一担心的是,由于处理视频和检查switch语句的运行时处理延迟,第二次计数可能对视频不准确。我会报告它是如何工作的。