2011-09-26 241 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

可以使用屬性檢查器來更換顏色。爲「背景」選擇顏色。