iOS 实现悬浮跟手滚动效果

思路: 透视图不是放在tableView上面,而是放在控制器的view面,当tablView滚动的时候

头视图就跟着tablView滚动,(通过记录上次偏移量和当前偏移量来实现, tableView滚动多少,头视图就滚动多少),然后限制一下头视图的两个边界位置即可,通过MIN和MAX实现,同时,为了实现性能的优化,在超出临界值之后,就不再设置frame

复制代码
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.y > self.lastOffset && CGRectGetMinY(self.headerView.frame) <= 50) {
        self.lastOffset = scrollView.contentOffset.y;
        return;
    }
    if (scrollView.contentOffset.y < self.lastOffset && CGRectGetMinY(self.headerView.frame) >= 100) {
        self.lastOffset = scrollView.contentOffset.y;
        return;
    }
    CGRect rect = self.headerView.frame;
    CGPoint orign = rect.origin;
    orign.y -=(scrollView.contentOffset.y - self.lastOffset);
    orign.y = MIN(100, MAX(50, orign.y));
    rect.origin = orign;
    self.headerView.frame = rect;
    self.lastOffset = scrollView.contentOffset.y;
}
相关推荐
liucan2332 小时前
JS执行速度似乎并不比Swift或者C语言慢
前端·ios
安和昂4 小时前
【iOS】 Block再学习
学习·ios·cocoa
pop_xiaoli4 小时前
OC学习—命名规范
学习·ios
Digitally9 小时前
如何在没有 iTunes 的情况下备份 iPhone
ios·iphone
刘_小_二10 小时前
iOS用Xib 之三等分以及多等分思路
ios
season_zhu11 小时前
Swift:优雅又强大的语法糖——Then库
ios·架构·swift
I烟雨云渊T20 小时前
iOS 门店营收表格功能的实现
ios
明月看潮生1 天前
青少年编程与数学 01-011 系统软件简介 07 iOS操作系统
ios·青少年编程·操作系统·系统软件
90后的晨仔1 天前
RxSwift 框架解析
前端·ios
可爱小仙子1 天前
ios苹果系统,js 滑动屏幕、锚定无效
前端·javascript·ios