如何固定UITableView的viewForHeaderInSection

新手上路,请多包涵

对于UITableView,我们可以通过代理方法:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
来为其某一个section添加一个header view。而当你向上滑动tableview时,会发现这个header view到了屏幕的顶部之后就不走了,而下面的table view还在继续向上滑动。

我的问题:
如何能禁掉header view的这个默认行为:“到顶部后不再跟着table view一起滑出界面,而是留在了最顶端。直到这个section滑出界面。” 我需要header view跟着table view 一起滑出界面。

为了说明,附上一张图:
Screen-Shot-2012-10-23-at-2.17.23-PM.png

阅读 26.5k
2 个回答

实现方法,sectionview=nil。
每一个section的第一行作为sectionview。

有一个问题向上使劲滑动的时候,不会到达uitableview的顶部

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == self.myTableView)
    {
    //YOUR_HEIGHT 为最高的那个headerView的高度
    CGFloat sectionHeaderHeight = YOUR_HEIGHT;
    if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
    scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
    } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
    scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
    }
    }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题