2012-08-10 75 views
1

如何更改顯示視圖的順序,當我想重新排列的兩個視圖不相關時?更改與視圖無關的z順序

我想在別人的代碼上工作,他們有一個類是UITableViewController的子類。我想放置一個背景,所以我把它作爲self.view的子視圖。

問題是,它顯示在表的前面,而表位於self.tableView,而不是self.view.tableView。由於兩個視圖不在一起,所以我不能使用sendSubviewToBack方法。

self是我正在處理的viewController類。

任何想法?

UIImageView *background = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"editInfoBG.png"]]; 
background.frame = CGRectMake(0, 0, 320, 416); 
[self.view addSubview:background]; 

// Doesn't work, the table is not a subview of self.view 
[self.view sendSubviewToBack:background]; 
+0

不要忘記接受你的問題 – tikhop 2012-08-10 12:36:53

回答

1

的tabeview之前插入背景如果你想子視圖添加到您的視圖控制器,你應該手動添加UITableView作爲子視圖使用的UIViewController子類,並實現UITableViewDataSourceUITableViewDelegate協議而不是使用UITableViewController

+1

謝謝,我不想刪除任何屬於製作程序的人的東西,而且我也沒有我真的知道自己在做什麼,但最終我只是用舊數據表創建了一個具有相同數據源和委託的新表,並且工作正常(原始表只隱藏在背景圖像後面)。我將新表添加爲self.view的子視圖,然後我可以使用背景進行排序。 – Mirror318 2012-08-12 10:44:38

0

你可以這樣

[self.view insertSubview:background belowSubview:self.tableView.view];

+0

你真的嘗試過你的方法嗎? – tikhop 2012-08-10 12:35:43

+0

當然,你也可以試試:) – touti 2012-08-10 14:02:00

+0

什麼是self.tableView? UITableView或UITableViewController – tikhop 2012-08-10 14:47:32