2011-11-04 12 views
4

我創建了一個基於窗口的項目,然後添加了一個新的視圖控制器,其中xib用於檢查用戶界面,然後通過進入xib,我對視圖進行了一些自定義,我加了幾個按鈕,也改變背景顏色,通過在ios中的XIB的代碼intead更改UIView的背景顏色

但現在我想改變通過代碼視圖的背景顏色,而不是通過廈門國際銀行,

所以我在

-(void)viewDidLoad 
{ 
    UIColor *myColor = [UIColor colorWithRed:(128.0/255.0) green:(90.0/255.0) blue:(200.0/255.0) alpha: 1]; 
    self.view.backgroundcolor = mycolor; 

} 
試過這種

但沒有發生任何變化,所以請幫助我朋友

感謝&問候 蘭吉特

+0

你試過類似[UIColor redColor]的東西嗎? – akaru

+0

我試過這段代碼,它沒有工作,因爲顏色被分配給myColor,backgroundcolor被設置爲mycolor。案例差異。我知道這已經快17個月了,所以希望你能解決它。一旦我改變了這一點,我得到了一個很好的紫色 – cardmagik

回答

14

你輸入的內容是正確的。它應該工作。不過,我可能會添加一些修正 - 定義宏,它可以很容易地指定顏色 -

#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1] 
#define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a] 

[self.view setBackgroundColor: RGB(135, 182, 44)]; //will give a UIColor objct 
+0

嘿srikar,感謝您的寶貴信息,但我的代碼不工作,,,它顯示了我的背景顏色通過xib設置 – Ranjit

0

一定有別的東西你的代碼錯誤,這是做它的方式。嘗試使用NSLog打印出self.view,它是一個有效的對象嗎?你確定代碼被調用嗎?該視圖是否真的在視圖層次結構中?

+0

嘿darren,當我通過xib設置顏色,它會改變,但是當我嘗試通過代碼來做到這一點..它不工作..及其有效的項目..我嘗試打印xib中的值..我得到正確的rgb值,但顏色不會改變 – Ranjit

1

我遇到了類似的問題,我想我知道其中的原因。您正在設置viewDidLoad中的backgroundColor。我發現在代碼到達viewDidAppear:時,我對背景顏色所做的任何更改都會被擦除。

如果你將你的設置移動到viewDidAppear:,它應該工作。

或者,您可以使它在主線程中設置顏色。

[[NSOperationQueue mainQueue] addOperationWithBlock: 
^{ 
    [UIColor colorWithRed:(128.0/255.0) green:(90.0/255.0) blue:(200.0/255.0) alpha: 1]; 
}]; 
0

這是我如何解決我的問題: 您必須設置XIB文件到默認的視圖,如果不將其更改爲默認值,則不能從改變背景顏色被設置的原始顏色。

例如,如果將背景顏色設置爲紅色,即使以編程方式更改它,它仍會保持讀取狀態,但不僅如此,而且view.layer.cornerRadius之類的內容也不會起作用。

因此,基本上將XIB文件中視圖的背景顏色更改爲默認值,並以編程方式進行設置。