2009-07-13 137 views

回答

3

UIImageView *background = [[UIImageView alloc]initWithImage: [UIImage imageNamed: @"background.jpg"]]; 
    [tableView addSubview: background]; 
    [tableView sendSubviewToBack: background]; 
+1

謝謝,試過了,但我認爲sendSubviewToBack消息不起作用,因爲它應該在這種情況下:UIImageView被定位在單元格之上。任何線索? – 2009-07-13 14:06:08

+1

這種方法是我第一次嘗試。發送到後面仍然會將它放在單元格上方。 – 2010-11-01 18:42:54

-6

一個可能的答案是 - 很明顯 - 已經在計算器:

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

編號:iPhone - Setting background on UITableViewController

編輯:這不是一個完美的答案,我知道:)

+2

這將使用每個單元格中的背景部分。所以如果你有更高的背景圖像,那麼一個單元格將無法工作。 – OgreSwamp 2010-07-19 20:49:22

+6

這不是正確的答案,因爲背景圖像不會與表格一起滾動。 – Bobo 2011-05-29 16:07:04

+1

這應該工作嗎?我面臨着@OgreSwamp提到的同樣的問題,儘管背景可以用tableview滾動,但單元格使用每個單元格中的背景部分。如果這個解決方案不起作用,爲什麼這被接受爲正確答案? – 2012-03-19 10:35:05

3

我會認爲答案是繼承UITableView並覆蓋layoutSubviews。在UITableView中,您應該創建一個指向背景UIImageView的屬性。

當你重寫layoutSubviews只寫

-(void) layoutSubviews { 
    [self sendSubviewToBack: backgroundImageView]; 
    [super layoutSubviews]; 

} 
+0

不幸的是,這不足以解決視圖混洗的所有角落案例。 – steipete 2011-09-01 09:58:01

+0

怎麼這樣?它實際上解決了問題,我自己嘗試過。你在說什麼角落案件? – thewormsterror 2011-09-08 23:41:11

+0

有時,UITableView洗牌視圖。這不是確定性的,並且在iOS版本中不同。不要使用這個。我用滾動UIImageView重新定位在scrollViewDidScroll – steipete 2011-09-09 08:36:11

6

你必須通過的UITableView的backgroundColor屬性來設置背景圖片:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]; 
+1

如果它不是'UITableViewController',你必須使用'tableView.backgroundColor = ...' – Jochen 2012-09-24 13:45:07

+0

這是一個不錯的 – Eugene 2013-03-12 13:09:12

+1

這是否也適用於iOS6?我嘗試在我的viewDidLoad中,但沒有任何反應,它仍然顯示標準的grouptableview bg。 – JonEasy 2013-04-17 13:41:07