【问题标题】:"Inactive" views won't update background color“非活动”视图不会更新背景颜色
【发布时间】:2012-09-22 10:47:00
【问题描述】:

我有这个奇怪的问题(或者我是这么认为的)。我有两种看法。一个是“基本”视图,另一个是设置,我想将背景颜色更改为图案图像。这很好用,但是当我放置一些按钮让用户选择他们想要看到的颜色时。我当前的代码看起来像

    [[NSUserDefaults standardUserDefaults] setValue:@"Green" forKey:@"Theme"];
NSString *bgString = [NSString stringWithFormat:@"%@_bg.png", [[NSUserDefaults standardUserDefaults] objectForKey:@"Theme"]];
self.baseView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:bgString]];
self.settingsView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:bgString]];

由于某种原因,只有 settingsView 更新。 SettingsView 在弹出框内,但我也在视图控制器中尝试过。当我退出并重新打开应用程序时,它会更新。如何立即更新?

【问题讨论】:

    标签: ios view colors background


    【解决方案1】:

    试试[[self settingsView] setNeedsDisplay]

    【讨论】:

    • 我试过了,没用,我什至在关闭视图控制器的时候也做了,还是没有效果。我实际上尝试将我在操作中使用的相同代码放置到完成,仍然没有。这越来越奇怪了……
    【解决方案2】:

    您是否使用任何后台线程或大量工作可能会锁定 UI?尝试使用它来确保它在主线程上运行,看看效果如何。

    dispatch_async(dispatch_get_main_queue(), ^{
                        //Your code here
                    });
    

    【讨论】:

      猜你喜欢
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      相关资源
      最近更新 更多