大家好我使用下面的代码为UIAlertView提供自定义颜色。我使用的是S.D.K. 3.2.3并且颜色变成了所需的颜色。但今天我更新了我的S.D.K.现在我使用4.2.1并在此S.D.K上运行此代码。它工作。但是当我再次检查AlertView的颜色没有改变,但我提供的图像的颜色,移动到alertview的后面。我不知道为什么会发生这种情况。 有什么不对,我不使用ios 4.2。 请告诉我如何在ios 4.2中执行此操作,代码与3.2.3 sdk一起运行良好。 代码是
UIAlertView *ForgotPassalert= [[UIAlertView alloc]initWithTitle:@"Status" message:@"An Email has sent to your Account Containing User Name and Password " delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"cancel",nil];
CGAffineTransform moveUp = CGAffineTransformMakeTranslation(0.0,
-120.0);
[ForgotPassalert setTransform: moveUp];
[ForgotPassalert show];
#pragma mark (AlertView Custom Color)
UIImage *theImage = [UIImage imageNamed:@"Untitled-1.png"];
theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16];
CGSize theSize = [ForgotPassalert frame].size;
UIGraphicsBeginImageContext(theSize);
[theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];
theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[ForgotPassalert layer] setContents:(id)theImage.CGImage];
//[[Passalert layer]setBackgroundColor:[[UIColor colorWithRed:179.0f/255.0f green:21.0f/255.0f blue:17.0f/255.0f alpha:1.0f]CGColor]];
[[ForgotPassalert layer]setCornerRadius:7.3F];
[ForgotPassalert release];
答案 0 :(得分:0)
这背后唯一可能的原因是,Apple会更改AlertView的层结构或其实现。这就是为什么你无法看到改变的颜色。
这就是为什么建议不要打扰默认控件(如UIAlertView,UIActionSheet,UIPickerView)的外观和感觉,因为苹果不提供已发布的方法。无论你做了什么,只有现在已经解决的解决方法。
你很幸运,你的应用程序没有崩溃所以不关心警报上没有显示的颜色。
希望您了解基本的user interface guidelines.
谢谢,
Madhup
答案 1 :(得分:0)
所以它是否意味着没有其他方法可以改变颜色,因为在我的应用程序中我已经使所有内容与应用程序颜色方案匹配,红色和黑色,但只有对话框创建混乱他们的默认蓝色我正在使用xcode 4.2使用故事板,我对UIActionSheet进行了更改,但无法更改AlertView背景颜色。