2011-09-26 160 views
5

编辑:人们不断访问这个帖子,没有太多好的信息,所以我会把它放在这里帮助你们: 尝试设置UIViewbackgroundColor属性。例如:设置UIVIew的背景色

myView.backgroundColor = [UIColor blueColor]; 

确保你的观点已经被实例化,如果它是由厦门国际银行或情节串连图板在所有受控,确保该视图已经被加载(否则无论是在界面生成器设置将成为背景颜色)。如果这不起作用,会发生奇怪的事情。继续寻找,这篇文章不会帮助你。

原文章:

我有一个NSObject与UIView属性。大多数情况下,我使用这个UIView显示图片,但在某些情况下,我想设置它的背景颜色。但是,每次尝试设置背景颜色时,颜色都保持清晰。任何图像或其他子视图都会出现,但背景不会。我如何更改UIView的背景颜色?下面是我的一些代码:

这里是我需要一个平铺图像的例子: (这是在一个叫做后,我加入了UIView到ViewController的视图功能)

(图片是一个UIView属性)

picture.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Tile.png"]]; 

我也试图在其他情况下:

picture.backgroundColor = [UIColor colorWithRed:0 green:1 blue:1 alpha:0.5]; 

在这两种情况下,背景是明确的。

+0

它仍然解决了我正在寻找的,设置背景:) –

回答

0

我不确定问题出在哪里,虽然我知道这不是你回答的问题之一,但上次我去研究这个问题时,我注意到它正在工作。无论如何,谢谢你的帮助。

7

你是否正在分配和初始化上面提到的UIView?问题应该是你最有可能忘记为UIView调用图片。

试试看:

picture = [[UIView alloc] initWithFrame:CGRectMake(10,10,200,200)]; 
picture.backgroundColor = [UIColor redColor]; 

假设画面已经声明类型的UIView在接口文件伊娃。

+0

谢谢,但它已被分配在此之前调用的函数。 – WolfLink

2

alpha的有效范围为0.0到1.0。你必须将其设置为50,尝试代替1:

picture.backgroundColor = [UIColor colorWithRed:0 green:1 blue:1 alpha:1]; 
+0

没有问题的阿尔法。这不会导致问题。只要将其设置为OP所指定的值,并且会给出浅蓝色。 – Bourne

+0

我的意思是0.5而不是50.另外,放50不会导致它崩溃,它会像你给它1一样工作。 – WolfLink

+0

@Wolflink你的问题并没有说它崩溃了。如果你遇到异常,你应该这么说。 – progrmr

1

如果您在使用RGB值好,你可以使用

picture.backgroundColor = [UIColor colorWithRed:0 green:1 blue:1 alpha:1]; 

否则使用的UIColor设置颜色为backgound

picture.backgroundColor = [UIColor greenColor]; 
+0

我更像是[UIColor colorWithPatternImage:[UIImage imageNamed:@“Rope.png”]];但我更简单地尝试消除可能的问题因素。 – WolfLink

+0

如果您要使用colorWithPatternImage:您可能会发现泄漏。 – Anand

0

这可能是值得检查一下你是否在改变主线程的背景颜色。如果您在派发队列(不是主队列)中更改背景色,它有时不会反映在UI外观中。

-1

你的代码似乎完全有效,它应该改变背景颜色。您可能需要仔细检查picture.opaque属性是否设置为YES(这是默认值,除非您的代码更改了它)。但更可能的问题是视图的框架大小为零。我会建议验证这一点。例如,通过登录它:

NSLog(@"Frame size: width=%f, height=%f", picture.frame.size.width, picture.frame.size.height); 

干杯

0

可以使用属性检查器来更换颜色。为“背景”选择颜色。