【问题标题】:iPhone: NSTimer stops temporarily when a touch action is performed?iPhone:执行触摸操作时,NSTimer 会暂时停止?
【发布时间】:2012-06-02 11:24:19
【问题描述】:
我正在开发一个 iOS 应用程序,在该应用程序中,我每 0.5 秒重复触发 NSTimer,并根据该计时器移动歌曲进度条。当用户触摸某些图像时,我会处理触摸事件,我将它们保留在同一个视图中。
但是,当用户触摸图像时,移动进度条的计时器会暂时停止并再次继续。如果想在同一个视图中同时处理定时器和触摸事件,有什么问题需要解决吗?
触摸图片时会出现暂时停止的原因吗?
【问题讨论】:
标签:
iphone
image
event-handling
progress-bar
【解决方案1】:
听起来应用程序的主线程上发生了太多事情。定时器方法调用在主运行循环上传递,触摸事件也是如此。确保您的触摸事件处理程序和计时器处理程序都没有在主线程上进行任何严重的计算或 IO 工作。
在使用 iOS 中最高级别的音频框架 (AVPlayer) 时,它每秒仅更新一次音轨中的当前位置。因此,也许每 0.5 秒调用一次计时器是多余的,也许每 1 或 0.9 秒会减少争用。