Cell的图片跟随TableView滚动产生视觉差

前言:

简简单单的一个视觉差异效果,可以让普通的Cell看起来生动了不少。我把这个效果想象成可以透过多个窗口看到图片,所以起了Ommateum这个名字。
Github下载地址 - QWOmmateumEffect

效果图:

当tableView滚动,Cell的图片也会滚动

Ommateum效果实现:

cell里的宏

// scrollView的滚动系数
#define kRATIO              kSCROLLVIEWHIGHT*0.5/kSCREENHEIGHT/kSCREENHEIGHT
#define kSCREENWIDTH        [UIScreen mainScreen].bounds.size.width
#define kSCREENHEIGHT       [UIScreen mainScreen].bounds.size.height
#define kSCROLLVIEWHIGHT    200

cell里的滚动方法:

- (void)startCellOmmateumEffect:(UIView *)view {
    //     将cell的frame转换成view的Frame(为了获取每个cell的Y值计算应当滚动多少)
    CGRect rect = [self.superview.superview convertRect:self.frame toView:view];
    //     tableView往上滑动时,当cell即将完全移出屏幕,这个时候cell还在可见区域内,而它的Y值是最大的负数,也就              是说负多少和正多少scrollView滚动距离都是一样的,这里是按照tableView的height+一个cell的height这个范围来计算,所以这里加上一个cell的高度(如果不理解可以去掉kSCROLLVIEWHIGHT往上滑动看效果)
    CGFloat originY =  rect.origin.y + kSCROLLVIEWHIGHT;
    _scrollView.contentOffset = CGPointMake(0, originY*originY*kRATIO + kSCROLLVIEWHIGHT*0.5);
}

当tableView滚动时在代理方法scrollViewDidScroll:中去遍历当前可见的所有cell,执行他们的滚动方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    for (QWOmmateumEffectCell *cell in [_tableview visibleCells]) {
        [cell startCellOmmateumEffect:self.view];
    }
}

一上来加载tableView时并没有滚动到相应的位置,需要手动去让它滚一次:

dispatch_async(dispatch_get_main_queue(), ^{
        [self scrollViewDidScroll:[[UIScrollView alloc] init]];
    });

这个demo我是参照了判若两人丶 的,计算的方式有区别,大体思路是一样的,可以下载我的demo看下。
感觉对自己有帮助请给个赞,欢迎小伙伴们留言指出不足!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,736评论 4 61
  • 为什么坚持一件良好的事总不持久?也许是我们忘了初衷。若你想读书,就记住书本带来的快乐,和每天都会有感悟的满足。忘记...
    彩铅心情阅读 1,828评论 0 0
  • 作为一个在体制内上班的人,早上到办公室浏览朋友圈的时候,看到一个同在体制内的朋友转了一篇题为《体制内外的狼狗之争》...
    河东西阅读 11,721评论 43 88
  • 前言 今天刚好看到数据结构相关的书籍,发现它对数据结构和数据类型的概念写得并不是很清楚,让人迷惑。于是想着把自己的...
    罗蓁蓁阅读 5,096评论 0 4
  • 若不是爱得深沉 若不是爱得深沉…… 脑海里突然冒出这么个短句。于是兴起,在临近午夜时分,开始执笔爬格子...
    苏再蓉阅读 3,947评论 8 6

友情链接更多精彩内容