天天看點

uialertview 圖檔,更改UIAlertView的背景顔色?

uialertview 圖檔,更改UIAlertView的背景顔色?

I want to change the background color of my UIAlertView, but this doesn't appear to have a color attribute.

解決方案

Background of AlertView is an image

And you can change this image

UIAlertView *theAlert = [[[UIAlertView alloc] initWithTitle:@"Atention"

message: @"YOUR MESSAGE HERE", nil)

delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];

[theAlert show];

UILabel *theTitle = [theAlert valueForKey:@"_titleLabel"];

[theTitle setTextColor:[UIColor redColor]];

UILabel *theBody = [theAlert valueForKey:@"_bodyTextLabel"];

[theBody setTextColor:[UIColor blueColor]];

UIImage *theImage = [UIImage imageNamed:@"Background.png"];

theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16];

CGSize theSize = [theAlert frame].size;

UIGraphicsBeginImageContext(theSize);

[theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];

theImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

[[theAlert layer] setContents:[theImage CGImage]];