我有一个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