2010-04-02 70 views
6

我有這樣設置的自定義背景圖片一個UITableView:自定義表視圖背景的UITableViewCell色差問題

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]; 

背景似乎很好,但我UITableViewCells(默認細胞,而不是定製)有某種奇怪的色彩給他們,並且包含「新項目」文本的UILabel也似乎有某種背後的背景。我該如何刪除它?我已經嘗試過:

cell.backgroundColor = [UIColor clearColor]; 
cell.textLabel.backgroundColor = [UIColor clearColor]; 

感謝

alt text http://cl.ly/Cg5/content

回答

2

我相信這是一個令人討厭的副作用,只需將圖像直接添加到桌面視圖的backgroundColor中即可。

嘗試添加圖像到視圖的背景色:

[[self view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]]; 

,然後設置表視圖的的backgroundColor是明確的:

[[self tableView] setBackgroundColor:[UIColor clearColor]]; 

我希望這幫助!

+0

這做到了,謝謝! – indragie 2010-04-05 17:33:13

+0

嗨,如果我需要背景圖案與表格滾動呢?所以我不能簡單地將桌子的背景變成透明的,並在桌子底下設置視圖的背景。 – hzxu 2012-04-12 05:52:41

+0

嗨hzxu,我認爲你將能夠實現,如果你設置你的表格單元格的背景顏色爲[UIColor clearColor],然後將你的表格單元格的背景視圖設置爲一個自定義圖像(UIImageView)。然後,您應該可以使用您選擇的表格背景。希望這可以幫助。 – 2012-04-16 19:01:36

0

有些時候,當你有一個應用程序設定的圖像,並測試在模擬器上工作,他們得到凍結的應用程序爲少數跑。不確定,即使刪除圖像文件也是如此;他們仍然不斷彈出。

我會讓你休息模擬器,並重新啓動Xcode。然後在模擬器上強制重建應用程序。這應該清除任何圖像 - 即使背景圖像仍然被引用。

如果這不是一個可行的解決方案...嘗試確保沒有衝突的命令轉到相同的UiTablView對象(從IB和1編程的Xcode)。有時候,你可能會忽略你在IB中設置了某些東西,並且它與你告訴它編程的內容相沖突。

如果這樣不能解決問題......請檢查IB中的連接,並確保重新顯示正確的IBOutlet UITableView * tableview。並且頭中有委託和數據協議。

0

如果你想有每個單元有背景設置並希望刪除的文字的背景,也許你可以試試這個...


- (void)viewDidLoad { 
... 
self.tableView.backgroundColor = [UIColor clearColor]; 
... 
} 

- (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
... 
cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mybg.png"]]; 
cell.textLabel.backgroundColor = [UIColor clearColor]; 
... 
}