ios tableView sectionHeader 吸顶效

2019-11-11  本文已影响0人  秋S寂S

ios tableView sectionHeader 吸顶效果

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {// any offset changes
    // change the position of section header when scrolled by changing scroll's contentInset
    CGFloat sectionHeaderHeight = 50;
    CGFloat ceilPositon = CGRectGetHeight(_headerView.frame)-sectionHeaderHeight;
    if (scrollView.contentOffset.y < sectionHeaderHeight){
        scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
    }
    // the "scrollView.contentOffset.y" must larger than its position to ceiling
    if (scrollView.contentOffset.y>=ceilPositon && scrollView.contentOffset.y>=sectionHeaderHeight) {
        scrollView.contentInset = UIEdgeInsetsMake(sectionHeaderHeight, 0, 0, 0);
    } 
}

ceilPositon是我需要的section header的吸顶位置,当tableView的偏移量小于sectionHeaderHeight的时候,正常显示;当tableView的偏移量大于ceilPositon,也就是我们期望的吸顶位置的时候,我们就把scrollView.contentInset的top置为sectionHeaderHeight的高度,于是就实现了我们想要的效果,可以随意更改section header的吸顶位置。同样,此方法也可以使plain类型的tableview失去粘性效果,只需要改变scrollView.contentInset即可.
————————————————

原文链接:https://blog.csdn.net/axllll/article/details/50502475

上一篇 下一篇

猜你喜欢

热点阅读