实现非常简单。我正在更新 UIView 的背景颜色。
对于颜色的选择,我使用的是外部组件。
但是,在选择颜色时,它不会立即更新。相反,当我再次运行项目时,背景颜色会发生变化。
对这个问题有任何见解吗?谢谢!
更新:
下面的方法是从我的班级的 viewWillAppear 方法中调用的
-(IBAction)changeColor:(id)sender
{
NSArray *arrColor = [[NSArray alloc]initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"color"]];
[self.viewWithSilhouetteImage performSelectorOnMainThread:@selector(setBackgroundColor:) withObject:[UIColor colorWithHue:[[arrColor objectAtIndex:0] floatValue] saturation:[[arrColor objectAtIndex:1] floatValue] brightness:[[arrColor objectAtIndex:2] floatValue] alpha:1.0] waitUntilDone:NO];
[btnSelectPhoto setTitleColor:[UIColor colorWithHue:[[arrColor objectAtIndex:0] floatValue] saturation:[[arrColor objectAtIndex:1] floatValue] brightness:[[arrColor objectAtIndex:2] floatValue] alpha:1.0] forState:UIControlStateNormal];
}
我尝试调试甚至登录。每次更新颜色时都会调用该方法,但直到下次运行时才会反映。
我使用的组件是 ESCColorpicker: https ://github.com/JARinteractive/ESCObservable/tree/master/example/ESCColorPicker