当我点击UIAlertView的OK按钮时,我需要更改视图的背景颜色,它的默认颜色是白色,所以每次用户点击OK,我需要在两种颜色之间交替,白色和红色例如:
-(void)changeColor{
if([self.view.backgroundColor isEqual: [UIColor whiteColor]]){
self.view.backgroundColor=[UIColor redColor];
}else {
self.view.backgroundColor=[UIColor whiteColor];
}
}
问题是,在第一次OK点击时,颜色应该变成红色,但是它不会变红,所以我需要第二次单击OK按钮以获得红色的视图背景颜色。我错过了第一次改变颜色的东西吗?
这是alertView:didDismissWithButtonIndex
委托方法:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
if (buttonIndex==0) {
//NSLog(@"It's Ok button which has been clicked");
//Do whatever you want, commonly call to another function like so:
[self changeColor];
}else
if (buttonIndex==1) {
//NSLog(@"It's Cancel button which has been clicked");
}
}
答案 0 :(得分:5)
它可能与[UIColor whiteColor]
返回的“白色”不同。如果您在IB中为视图选择白色并进行记录,则会得到:UIDeviceRGBColorSpace 1 1 1 1
如果您将颜色设置为[UIColor whiteColor]
,然后重新记录,则会得到:UIDeviceWhiteColorSpace 1 1
答案 1 :(得分:1)
如上所述,它实际上并不是[UIColor whiteColor]。在视图加载时手动设置:
- (void)viewDidLoad
{
self.view.backgroundColor = [UIColor whiteColor];
}