我有一个UIView在下面有一个UITableView:
我想做的是在用户开始在表中滚动以使UITableView有更多的空间(当您再次向下滚动)时,让UITableView上方的视图向上移动(以外的方式).
我知道这通常是用表头视图来完成的,但我的问题是我的表视图在一个选项卡内(实际上是使用TTSliddingPageviewcontroller实现的侧滚页面视图).所以当我只有一个顶级UIView有三个UITableViews.
是否可以手动完成?我的第一个想法是将所有内容都放在UIScrollView中,但是根据Apple的文档,UIScrollView中不应该放置一个UITableView,因为这会导致不可预知的行为.
解决方法
由于UITableView是UIScrollView的子类,因此您的表视图的委托可以接收UIScrollViewDelegate方法.
在您的表视图的代表中:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { static CGFloat prevIoUsOffset; CGRect rect = self.view.frame; rect.origin.y += prevIoUsOffset - scrollView.contentOffset.y; prevIoUsOffset = scrollView.contentOffset.y; self.view.frame = rect; }