在 iPad 中,您可以在模态推送的视图中更改应用程序的外观。但是在选择主题并关闭视图后,外观不会改变。如果我全屏推送另一个视图,则视图会更新。
如何强制更新/刷新/重新绘制外观?
编辑
我试着到处玩setNeedsDisplay,但应用程序没有直接响应。正如参考所说,一旦循环重新启动,视图就会被标记为重绘。
并且由于视图已经在模态推送的外观更改器视图后面加载了其他外观,因此不会重新加载。
在 iPad 中,您可以在模态推送的视图中更改应用程序的外观。但是在选择主题并关闭视图后,外观不会改变。如果我全屏推送另一个视图,则视图会更新。
如何强制更新/刷新/重新绘制外观?
编辑
我试着到处玩setNeedsDisplay,但应用程序没有直接响应。正如参考所说,一旦循环重新启动,视图就会被标记为重绘。
并且由于视图已经在模态推送的外观更改器视图后面加载了其他外观,因此不会重新加载。
我快速修复了它。
我只是从全屏模式视图开始,在更改主题后我关闭视图,因此它后面的视图将被更新。
如果有人有更好的解决方案,我真的很想听听。
[view setNeedsDisplay]
通常用于告诉视图需要重绘。
[view setNeedsLayout]
是一样的-layoutSubviews
看:
我在改变 UISliders 的外观时或多或少有同样的问题。使用[self.view setNeedsDisplay]
没有效果。
使用下面的代码行,滑块的外观没有按预期改变,但只有在加载和关闭另一个视图之后才会改变。
[[UISlider appearance] setMinimumTrackTintColor:[UIColor greenColor]];
为每个滑块创建 IBOutlets 并如下设置 tintcolor 具有预期的效果,并且立即发生更改。
[volumeSlider setMinimumTrackTintColor:[UIColor greenColor]];
[brightnessSlider setMinimumTrackTintColor:[UIColor greenColor]];