【问题标题】:appearance proxy reload view外观代理重新加载视图
【发布时间】:2011-11-04 09:06:48
【问题描述】:

在 iPad 中,您可以在模态推送的视图中更改应用程序的外观。但是在选择主题并关闭视图后,外观不会改变。如果我全屏推送另一个视图,则该视图会更新。

如何强制更新/刷新/重绘外观?

编辑

我尝试在任何地方播放 setNeedsDisplay,但应用程序没有直接响应。 正如参考所说,一旦循环重新启动,视图就会被标记为重绘。

并且由于视图已经加载了模态推送的外观更改器视图后面的其他外观,因此不会重新加载。

【问题讨论】:

    标签: iphone ios ipad ios5 appearance


    【解决方案1】:

    我快速修复了它。

    我只是从全屏模式视图开始,在更改主题后我关闭视图,因此它后面的视图将被更新。

    如果有人有更好的解决方案,我真的很想听听。

    【讨论】:

    • 它很丑......但它正在工作:)而且我也希望看到更好的解决方案
    【解决方案2】:

    [view setNeedsDisplay] 通常用于告诉视图它需要重绘。

    [view setNeedsLayout]-layoutSubviews 相同

    见:

    【讨论】:

    • 是的,我知道,但应用程序没有响应呼叫。
    【解决方案3】:

    在更改 UISlider 的外观时,我或多或少遇到了同样的问题。使用[self.view setNeedsDisplay] 没有效果。

    在下面的代码行中,滑块的外观没有按预期改变,但只有在加载和关闭另一个视图之后才会改变。

    [[UISlider appearance] setMinimumTrackTintColor:[UIColor greenColor]]; 
    

    为每个滑块创建 IBOutlets 并如下设置 tintcolor 具有预期的效果,并且立即发生更改。

    [volumeSlider setMinimumTrackTintColor:[UIColor greenColor]];
    [brightnessSlider setMinimumTrackTintColor:[UIColor greenColor]];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2011-03-21
      相关资源
      最近更新 更多