UICollectionView的无限滚动---妥协做法
项目中总有写比较变态的需求,我们的UI设计师有喜欢很酷的交互,其中有个需求类似这种的
,然后再拖拽手势的target,action方法中进行判断如果状态来更改UICollectionView的偏移量,代码如下
- (void)customPan:(UIPanGestureRecognizer *)sender {if (sender.state == UIGestureRecognizerStateBegan) {self.oldOffset = self.collectionView.contentOffset;}if (sender.state == UIGestureRecognizerStateChanged) {CGPoint translation = [sender translationInView:self.collectionView];CGPoint offset;offset.y = (self.oldOffset.y - translation.y);if (fabsf(translation.y)>30) {[self.collectionView setContentOffset:offset animated:NO];}}if (sender.state == UIGestureRecognizerStateEnded) {CGPoint translation = [sender translationInView:self.collectionView];self.previousCell = [self.collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:self.centerItem inSection:0]];NSInteger step = 1;step = abs(translation.y/item_height)+1;//计算需要走几步if (translation.y > 0) {向上滑动if (translation.y > (item_height/2+10)) {if ((0 < self.centerItem) && (self.centerItem <= (self.count - step))) {self.centerItem -= step;}}} else if (translation.y < 0){//向下滑动if (abs(translation.y)>(item_height/2+10)) {if ((0 <= self.centerItem) && (self.centerItem < self.count - step)) {self.centerItem += step;}}}[self.collectionView setContentOffset:CGPointMake(0, self.centerItem*item_height) animated:YES];}}
转载于:https://blog.51cto.com/yunsankai/1613904
UICollectionView的无限滚动---妥协做法相关推荐
- UICollectionView实现无限滚动(理解花了我不少时间)
第一步: // 程序一开始就滚动到第二个cell // 滚动的前提是已经有cell数据了(所以不要在数据还没有加载就滚动) NSIndexPath *idxPath = [NSIndexPath in ...
- Swift 4 无限滚动轮播图(UICollectionView实现)
作为一个资深(自认为)iOS程序猿,会经常用到轮播图,但是总是感觉自己实现要比直接用别人的要方便一点,并且有一些需求需要深度定制,于是想着自己封装一个可以定制化的轮播图库JCyclePictureVi ...
- 分页与无限滚动在评论区的设计差异
本文由作者 呆呆丶 于社区发布 本篇文章的问题挺有意思,虽然是一个页面中无关紧要的模式,但却是典型的反模式设计,各位可以简单读读. 读者提问: 社区论坛类产品,天涯.虎扑与百度贴吧的帖子评论页有一个设 ...
- html滚动条自动翻页,10款无限滚动自动翻页jquery插件
无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的结果,改变了一直以来只能通过点击下一页来翻页这种常规做法.无限滚动自 ...
- 使用RecycleView实现无限滚动的日历
最终效果 项目地址 一.无限滚动实现 在RecyclerView.Adapter的getItemCount()方法中返回Integer.MAX_VALUE,使用RecycleView的scrollTo ...
- vue2.0无限滚动加载数据插件
做vue项目用到下拉滚动加载数据功能,由于选的UI库(element)没有这个组件,就用Vue-infinite-loading 这个插件代替,使用中遇到的一些问题及使用方法,总结作记录! 安装: ...
- 15个非常棒的jQuery无限滚动插件【瀑布流效果】
现在,最热门的网站分页趋势之一是jQuery的无限滚动(也即瀑布流).如果你碰巧观察Pinterest的网站,如Facebook,Twitter和deviantART的,你会发现无限滚动的动作,当旧的 ...
- 响应式的无限滚动全屏dribbble作品集布局展示效果
来源:GBin1.com 在线演示/下载 大家还记得前面分享过的两个魔术布局效果吧: 响应式的dribbble作品集魔术布局展示效果 宽度自适应缩进的响应式dribbble作品集魔术布局展示效果 今天 ...
- 051_InfiniteScroll无限滚动
1. InfiniteScroll无限滚动 1.1. InfiniteScroll无限滚动滚动至底部时, 加载更多数据. 1.2. Attributes 参数 说明 类型 默认值 infinite-s ...
最新文章
- 小米和西工大联手,三篇论文被Interspeech接收
- 网络工程师计算机类吗,机房网络工程师 | 网络工程专业的你知道吗?
- ABAP 用户选择屏幕 搜索帮助 实现代码
- 【Go】Panic函数
- mysql哪一款好用_用了这么多年MySql,这些好习惯你用过哪些
- java intent 传递集合对象_Android系列之Intent传递对象的几种实例方法
- PHP7内核基础知识之变量类型
- unknown host www.baidu.com 解决方法
- springboot整合aliyun的物流订单查询
- 一次搞懂清晰度、对比度以及锐化的区别
- 对接第三方支付接口-支付宝方式对接(我这边对接的是ecpay公司支付接口)
- 谈谈Mysql 字符串连接 CONCAT CONCAT_WS GROUP_CONCAT区别及使用场景
- 时序分析基本概念介绍--Timing Arc
- 信息化,不只是技术-某公司局域网改造实例(转)
- EI 收录的期刊有哪些
- c语言中val是什么函数,val(val是什么意思)
- 微信可以改彩色昵称了!!!太sao了吧!
- requests+pytest+allure接口测试框架搭建
- Swing中EDT和SwingUtilities以及SwingWorker的简单深入
- 读书笔记--PRML(1)