这主要是一个模式/设计问题,具有以下设置:
我的应用程序在白天/晚上具有不同的样式,其中包括:
尽可能使用UIAppearance Proxy Protocol,以及故事板。 然而,大部分样式都是在特定的Views viewDidLoad方法中完成的,这些方法也必须更新。
问题:
当应用程序在从白天切换到晚上的过程中处于活动状态时,反之亦然,所有新创建的UI元素都会根据新设置进行样式设置,如前所述,但在先前设置中已存在的元素仍未设置样式。如何在所有UI元素上触发restyle?
思路:
答案 0 :(得分:0)
快速谷歌搜索并找到了这个:
// Update UIAppearance...
NSArray *windows = [UIApplication sharedApplication].windows;
for (UIWindow *window in windows) {
for (UIView *view in window.subviews) {
[view removeFromSuperview];
[window addSubview:view];
}
}
......来自 http://snipplr.com/view/75259/refresh-uiappearance-after-application-loaded/
它可以非常有效地重新加载整个视图层次结构。你需要把它放在某个特定时间间隔触发的地方。
希望它适合你=]