0

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

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

4

2 回答 2

0

尝试[[self settingsView] setNeedsDisplay]

于 2012-10-01T15:12:21.190 回答
0

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

dispatch_async(dispatch_get_main_queue(), ^{
                    //Your code here
                });
于 2012-10-01T15:31:38.520 回答