我希望能够根据一天中的时间更改我的应用程序的背景颜色.我相信这样做的方法是说小时组件是否大于任何数字,将背景设置为夜间背景,否则它是白天背景.
为了测试我担心的事情,我扔了
timeLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .NoStyle, timeStyle: .FullStyle)
Run Code Online (Sandbox Code Playgroud)
进入viewDidLoad.这显示了应用加载的时间.如果我杀了应用程序并完全重新加载,这显然也会不断更新.
但是,如果用户进入主屏幕或转到其他应用程序,则返回到此时间不会更新.它将显示应用程序首次加载的时间.只有当用户完全杀死应用程序(显然无法依赖)时,才会显示正确的时间.
因此,在我的示例中,如果我的"切换到夜间时间"是下午5点,如果用户在4:30加载,然后进入主屏幕,则在下午5点加载应用程序,没有任何内容会因为存储的时间而改变还是4点30分.
我尝试抛出代码viewDidAppear而没有任何改变.
当应用程序从主屏幕加载或从其他应用程序返回时,会运行什么代码?
你想关掉这个UIApplicationDidBecomeActiveNotification事件.试试这个:
override func viewDidLoad()
{
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "applicationDidBecomeActive:",
name: UIApplicationDidBecomeActiveNotification,
object: nil)
}
func applicationDidBecomeActive(notification: NSNotification)
{
// do something when the app is active again.
timeLabel.text = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .NoStyle, timeStyle: .FullStyle)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |