我有一個UITableViewController它包含一個查看和一個表視圖部分。UITableViewController - 限制滾動
查看包含一個標籤,該標籤指示表的標題。
我的問題是,滾動包括查看。我想要的是保持查看靜態(排除滾動)並僅滾動表。 (我使用靜態單元格)
謝謝。
我有一個UITableViewController它包含一個查看和一個表視圖部分。UITableViewController - 限制滾動
查看包含一個標籤,該標籤指示表的標題。
我的問題是,滾動包括查看。我想要的是保持查看靜態(排除滾動)並僅滾動表。 (我使用靜態單元格)
謝謝。
一個UITableViewController的層次是
- UIView
-- UIScrollView
---- UITableView
最初,你在UITableView的修改時的物品,所以你要補充一點,你不想滾動到UIView的部分(外面是我們的scrollView)。所以你需要像這樣調用超級好幾次:
[self.superview.superview.view addSubview:viewThatDoesNotScroll];
由於UITableView
是UIScrollView
一個子類:
- (void)viewDidLoad {
[super viewDidLoad];
// mySubview is an instance variable, declared in .h file
[self.tableView addSubview:mySubview];
// here goes the rest of your code
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if(scrollView == self.tableView) {
mySubview.frame = CGRectMake(mySubview.frame.origin.x, scrollView.contentOffset.y, mySubview.frame.size.width, mySubview.frame.size.height);
}
}
的代碼是從WWDC '10或'11(我不記得了)拍攝,所以我敢肯定它是最合適的方式做它。
說明:在-viewDidLoad
你創建你的視圖,並添加它作爲你的tableView的子視圖。你可以在-loadView
或-init
- 這並不重要。最重要的行在-scrollViewDidScroll:
方法中。每當用戶拖動scrollView時都會調用此方法,因此您可以簡單地將子視圖的origin.y
設置爲scrollView的contentOffset.y
。
不要UITableViewController。使用UIViewController並管理UITableView對象之外的視圖。如果需要,還可以實現UIViewControllerContainment來管理自定義視圖控制器中的不同視圖和不同視圖控制器。
將視圖放在'UITableView'之外。 – robertvojta
他不能在'UITableViewController'中做到這一點。 – akashivskyy
他不能做什麼?只是不要把視圖放入'UITableView [Cell]'就是這樣。 – robertvojta