“非活动”视图不会更新背景颜色

时间:2012-10-01 14:57:18

标签: ios view colors background

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

    [[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在popover内部,但我也在视图控制器中尝试过。当我退出并重新打开应用程序时,它会更新。如何立即更新?

2 个答案:

答案 0 :(得分:0)

尝试[[self settingsView] setNeedsDisplay]

答案 1 :(得分:0)

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

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