ios - 添加计时器以更新 UIView 背景颜色

标签 ios swift uiview nstimer uibackgroundcolor

大家好,我的程序员同事们,我是新来的,需要一些关于使用计时器更新 UIView 背景的帮助。是否可以在特定的时间范围内设置计时器?我希望能够让背景根据一天中的时间改变颜色。另外,即使用户不使用该应用程序,我是否可以将其更新到更新的位置?我希望我的应用程序能够拥有非常好的 UI 和用户体验,而不必停留在应用程序上。我一直在研究计时器,但是他们使用的是秒,这就是为什么我很好奇我是否可以使用小时来代替。提前致谢!

最佳答案

我认为你有两个不同的任务:

  1. 根据当前时间选择合适的 View 样式。 (我觉得很简单,在 viewWillAppearwillMoveToWindow 中用 NSDate 获取本地时间即可)。
  2. 通过更改时间来更新事件 View 。

要解决第二个任务,您可以使用计时器。只需使用计时器来检查时间,为此您可以将计时器安排到您应该更改样式的最近时间:

let timer = Timer(fire: Date(timeIntervalSinceNow: 1000.0), interval: 60.0 * 60.0, repeats:true) { (sender) in
            //check current time and update view's background;
            //or send notification about time
        }
RunLoop.current.add(timer, forMode: .common)

为了使您的代码更好,请创建一些类来封装计时器创建和 posting notification关于时间的变化。

UPD
我认为你应该从头开始。首先,了解 UIViewController , UIView , NotificationCenter , Timer .您还应该阅读有关 event-driven architecture 的信息.之后,您将查看您的应用程序并决定您可以在何处添加 colorUpdate 函数。
如果您需要完整的解决方案而不了解您的应用程序,您可以找到可以为您创建它的人(在 Freelance 或 Upwork 上或在其他可以找到外包商的地方)。

附言
将 colorUpdate 函数添加到 NotificationCenter 中不是一个好主意,您可以将此方法添加到通知的处理程序中。

关于ios - 添加计时器以更新 UIView 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52981090/

相关文章:

ios - 在ipad上隐藏状态栏

ios - SIGBRT 错误 : Could not cast value of type 'UITableViewController' (0x113ccb7e0) to 'Racing_Weather.PredictorTableViewController' (0x1086645b0)

ios - 输入附件 View 显示在像 UIAlertController 这样的对象上

ios - 如何在 Swift 中注册 UndoManager?

ios - 有没有办法在 Storyboard中将自定义 UIView 设置为 'design',并在不添加到任何特定 Controller 的情况下在多个 ViewController 中使用?

ios - 用于 View 数组的自动布局可视化编程语言

ios - 如何让自定义委托(delegate)工作

ios - FileManager.fileExistsAtPath 在 FileManager.removeItem 之前?

ios - 如何在 iOS App 的所有 View Controller 中重用相同的 UIView

ios - 如何将字符串标签(xAxis 标签)添加到图表框架中的水平条