更改 UIAlertView 的背景颜色,我收到警告:未找到 -setContents 方法

Posted

技术标签:

【中文标题】更改 UIAlertView 的背景颜色,我收到警告:未找到 -setContents 方法【英文标题】:changing background color of UIAlertView , I am getting Warning : No -setContents method found 【发布时间】:2009-10-16 06:22:46 【问题描述】:

警告:没有 -setContents 方法 成立。没有匹配的消息 方法签名将被假定为 返回 '​​id' 并接受 '...' 作为 论据 ....

这会使我的版本崩溃。 有人可以帮我解决吗?

代码在这里:

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]];

【问题讨论】:

苹果可以接受这种改变背景的方法吗? 【参考方案1】:

添加

#import <QuartzCore/QuartzCore.h>

到你的文件

【讨论】:

嗨,我将#import 添加到我的文件中,仍然显示以下警告。 :从不兼容的指针类型传递 'setContents:' 的参数 1。帮助... 尝试将 CGImage 类型转换为 id: [[theAlert layer] setContents:(id)[theImage CGImage]];

以上是关于更改 UIAlertView 的背景颜色,我收到警告:未找到 -setContents 方法的主要内容,如果未能解决你的问题,请参考以下文章

在警报视图中,如何更改背景颜色和显示视图底部?

我怎样才能拥有一个完全透明的 UIAlertView?

更改 UIAlertView 的字体颜色

更改 UIAlertview 和 UIActionsheet 按钮的色调颜色

更改 UIAlertView 中的按钮标题颜色

在 UILocalNotification 中更改 UIAlertView 的颜色