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;
}
相关推荐
微:xsooop15 小时前
iOS 上架4.3a 审核4.3a 被拒4.3a 【灾难来袭】
flutter·unity·ios·uniapp
Haha_bj17 小时前
iOS深入理解事件传递及响应
前端·ios·app
在下历飞雨20 小时前
Kuikly基础之动画实战:让孤寡青蛙“活”过来
前端·ios·harmonyos
D***t13121 小时前
Swift在iOS中的多任务处理
开发语言·ios·swift
2501_915918411 天前
iOS 手机抓包软件怎么选?HTTPS 调试、TCP 数据流分析与多工具组合的完整实践
android·ios·智能手机·小程序·https·uni-app·iphone
游戏开发爱好者81 天前
iOS 应用上架的工程实践复盘,从构建交付到审核通过的全流程拆解
android·ios·小程序·https·uni-app·iphone·webview
编程大师哥1 天前
Xcode26新特性与iOS26适配指南
ios
00后程序员张1 天前
iOS App 如何上架,从准备到发布的完整流程方法论
android·macos·ios·小程序·uni-app·cocoa·iphone
他们都不看好你,偏偏你最不争气1 天前
【iOS】TableView的优化
macos·ios·objective-c·cocoa