【问题标题】:NSNotification when device time changes (minutes)?设备时间更改(分钟)时的NSNotification?
【发布时间】:2010-11-18 10:08:19
【问题描述】:

有没有一种方法可以在 iOS 设备的系统时间分钟数发生变化时轻松设置通知?

我需要为时间变化做一些 UI 更新。我希望 UI 能够准确更新每分钟的更改,而不是通过 NSTimer 触发器每 60 秒更新一次。

【问题讨论】:

  • 制作一个较低分辨率的计时器,比如每 10 秒或其他时间,然后更新屏幕。如果您在秒内更新很重要,请将计时器分辨率设置为小于一秒,并在每分钟更改时更新。

标签: iphone nsnotifications


【解决方案1】:

API 不提供通知,但您可以通过让后台线程轮询系统时间然后在主线程上向 UI 发送自定义通知来滚动自己的通知。

但是,我不会打扰。您无法在任何带有软件 UI 的设备上“准确”地管理时间。您能做的最好的事情就是让 UI 更新发生在用户感知阈值以下。人类无法真正感知小于 100-200 毫秒(1/10 秒)的时间间隔。任何更精确的 UI 都是浪费的。只要应用程序的某些其他部分没有挂起或陷入困境,NSTimer 就可以非常可靠地达到 100 毫秒的窗口。

除非您使用 NSTimer 测试过接口并发现它需要,否则我不会去寻找增加复杂性的方法。

【讨论】:

  • 好吧,我只使用了 [self performSelector:@selector(setLabel) withObject:nil afterDelay:30];这应该没问题。我不想每秒钟都这样做,这似乎是很多 UI 重绘。
猜你喜欢
  • 1970-01-01
  • 2012-12-18
  • 2011-12-14
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 2014-05-03
相关资源
最近更新 更多