取決於您如何創建視圖層次 - 將其插入任一表視圖或波紋導航欄上面:
- (void)viewDidLoad
[super viewDidLoad];
// let's assume self.tableView is table view
// and self.navigationBar is navigation bar
// that both are subviews of [self view]
UIView *customSubview = [[UIView alloc] initWithFrame:someRect];
[[self view] insertSubview:customSubview aboveSubview:[self tableView]];
// -- OR --
[[self view] insertSubview:customSubview belowSubview:[self navigationBar]];
}
還有在特定索引中插入您的子視圖的選項。所以,如果您的導航欄最上面的(即索引0)和表視圖是最底部(即[[[[self view] subviews] count] - 1]
指數)可以插入這樣之間,您的自定義視圖:
[[self view] insertSubview:customSubview atIndex:1];
這樣,你的表視圖將下降通過在它的父和一個水平的子視圖的「分層」將以下:
- 索引0 - 導航欄
- 索引1 - 自定義子視圖
- 索引2 - 表視圖
雖然把自定義的子視圖放到標準的超級視圖中,但是你必須保持自己的位置,因爲它不會像以前那樣一起滾動tableview。
在我的例子中,self.view == self.tableview,因爲「self」是一個UITableViewController。 –
完成! [self.tableView.superview insertSubview:customView aboveSubview:self.tableView]就是我想要的!謝謝〜 –