2010-03-15 20 views
0

我添加一個圖像子視圖到一個UITableViewController與分組表。一旦添加圖像子視圖,我可以在圖像頂部看到表格標題,但單元格正在圖像後面繪製。iphone SDK:如何將圖像子視圖添加到UITableViewController並仍然可以看到單元格?

有什麼我需要做的,以確保表格單元格出現在背景圖片的頂部?下面是我使用的UITableViewControlle的viewDidLoad代碼:

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
[self.view addSubview:backImageView]; 
[self.view sendSubviewToBack:backImageView]; 
[backImageView release]; 

我意識到,作爲一種替代我可以簡單地創建一個複合視圖拖放在它上面的實現代碼如下而不是我想在這裏做。如果沒有其他解決方案,我會這麼做,但如果可能的話,寧願使用我嘗試的方法。

回答

0

看起來,UITableView通常會在刷新時重新排列視圖的zorder。因此,您需要手動管理在任何表事件(例如插入/刪除/更新行)上重置zorder。

2

這是一個分組表格視圖。從蘋果文檔:

The grouped style of table view provides a default background color and a default background view for all cells. 

這意味着有一個默認圖像視圖插入到您的表後面。你想用你自己的看法取代它,如下所示:

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
self.tableView.backgroundView = backImageView; 

這會用你自己的替換另一個backgroundView。否則,當表格視圖重新佈局時,其他背景圖片將覆蓋您的表格。

相關問題