我正在寻找我的 iOS 应用程序的主题,并且一直在阅读有关 UIAppearance 的内容。我希望用户能够在应用程序内在多个不同的视觉主题之间切换。更改主题将显示在 UI 中。
我想我可以在 appDelegate.m 中加载一个单独加载的主题文件。但在那之后我对如何实现这件事有点困惑?
最佳答案
在将 View 添加到 View 层次结构后,UIKit 通过 UIAppearance 代理设置属性。
在UISS我使用这样的方法:
- (void)reloadAppearance {
NSArray * windows = [UIApplication sharedApplication].windows;
for (UIWindow *window in windows) {
for (UIView *view in window.subviews) {
[view removeFromSuperview];
[window addSubview:view];
}
}
}
另一个技巧是从主窗口中删除 rootViewController 并重新添加它。虽然我更喜欢第一种解决方案,因为它涵盖了更广泛的案例。
关于ios - 使用 UIAppearance 和切换主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070582/