Ios 无法更改UIView背景颜色

Ios 无法更改UIView背景颜色,ios,objective-c,uiview,uicolor,Ios,Objective C,Uiview,Uicolor,我有一个iOS应用程序,它在我的ViewController中包含一个UIView和一个子UIView。在故事板中创建 我想更改iAction中子视图的背景颜色,但应用程序崩溃了。这是我的密码: -(IBAction)open_popup { [popupView setBackgroundColor:[UIColor colorWithRed:0 green:255 blue:0 alpha:1.0]]; } 更新-这就是我声明弹出视图的方式 更新-这是我得到的错误 谢谢您的时间,丹。

我有一个iOS应用程序,它在我的ViewController中包含一个UIView和一个子UIView。在故事板中创建

我想更改iAction中子视图的背景颜色,但应用程序崩溃了。这是我的密码:

-(IBAction)open_popup {
   [popupView setBackgroundColor:[UIColor colorWithRed:0 green:255 blue:0 alpha:1.0]];
}
更新-这就是我声明弹出视图的方式

更新-这是我得到的错误


谢谢您的时间,丹。

您的堆栈跟踪显示:

2 CoreFoundation 0x0000000101f9665d-[NSObjectNSObject 未识别选择器:+205 3 CoreFoundation 0x0000000101ef6d8d ___转发+973 4 CoreFoundation 0x0000000101ef6938\u CF\u转发+120 5 UIKit 0x000000010086466c-[UIViewHierarchy\u setBackgroundColor:+37

这意味着popupView不知道什么是setBackgroundColor。不认识选择器


检查并确保popupView实际上是一个有效的UIView对象。

好吧,我尝试了@Tander解决方案,但Xcode建议我像这样访问UIView:->然后它就工作了。。。。我不知道为什么。如果有人知道的话,如果你能解释为什么它是这样工作的,我将不胜感激

旧代码:

[popupView setBackgroundColor:[UIColor colorWithRed:0.0f/255.0f green:255/255 blue:0/255 alpha:1.0]];
新代码:

[self->popupView setBackgroundColor:[UIColor colorWithRed:0.0f/255.0f green:255/255 blue:0/255 alpha:1.0]];

这就成功了。

即使您可以将图像设置为背景,如下所示:

颜色 popupView.backgroundColor=[UIColor COLOR WITHRED:0绿色:255蓝色:0阿尔法:1.0]

对于将图像设置为背景: popupView.backgroundColor=[UIColor-WithPatternImage:[UIImage-ImageName:@ImageName.png]]


好控制台崩溃时显示什么?这是您的第一条线索。请确保popupView确实指向UIView。@Tander我已经用收到的错误更新了我的问题。你知道怎么了吗?@Anna你到底是什么意思?如果你是指界面生成器和参考插座,那么是的,它是连接的。与你的问题无关;这不是设定颜色的方法。如果要在通道中使用全色,请将其设置为1.0而不是255。如果你想要红色:120 do 120.0/255I已经这样声明了:ibuiview*popupView;在我的头文件中。所以这不应该是问题所在。那么,为什么要直接访问它的备份实例呢?为什么不self.popUpView呢?我怀疑这是个问题。键入self.popUpView,然后看看会发生什么?@tander这不是属性,而是IvarI获取错误:在类型为“ViewController*”的对象上找不到popUpView,您的意思是访问实例变量“popUpView”?@tander显然是这样工作的。你知道为什么吗?
[popupView setBackgroundColor:[UIColor colorWithRed:0.0f/255.0f green:255/255 blue:0/255 alpha:1.0]];
[self->popupView setBackgroundColor:[UIColor colorWithRed:0.0f/255.0f green:255/255 blue:0/255 alpha:1.0]];