我一直在寻找一段时间,找不到答案.我在一个
IOS应用程序,并有一个模式设置页面出现在按钮的按钮,并返回与一个segue.
我想实现的一个选项是配色方案设置.我真的想避免手动更改页面上每个元素的颜色.
我想实现的一个选项是配色方案设置.我真的想避免手动更改页面上每个元素的颜色.
苹果有这样的事情的UIAppearance协议(所以我可以设置所有按钮的文本颜色等.
他们的文件说:
Note: iOS applies appearance changes when a view enters a window,it doesn’t change the appearance of a view that’s already in a window. To change the appearance of a view that’s currently in a window,remove the view from the view hierarchy and then put it back.
我的问题是如何做到这一点.我试过调用viewWillAppear和setNeedsDisplay没有运气.
解决方法
尝试使用此代码段:
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/
在使用UIAppearance更改应用主题后,它对我来说是完美的