平滑翻页的优雅日历

也可以不局限于日历,可以使用在任何横向滑动,但是每个cell高度不同的地方

代码地址:https://github.com/ZKhercules/ElegantCalendar


使用UIcollectionview 添加分页横向滑动的方法创建的日历

因每月日期不同,日历的高度要随之变化

在月份滑动结束之后再更新高度,过度会过于生硬

思路创新,在滑动过程中,判断即将要话到的月份高度

首先判断当前UIcollectionview 正在向左滑或是右滑

然后判断即将滑到的月份高度与当前月份高度差

使用 (高度差 / 屏幕宽度 * contentOffset.x) 缓慢增加差值

这里着重说明一下contentOffset.x,本质上每一页滑动时都是希望从 0 ~ 屏幕宽

但是以414屏幕宽举例,从第二页开始再向右滑动时就已经是从414 ~ 828了,这个值如果直接使用越往后越会出现巨大的偏差

所以contentOffset.x在使用时,要减掉已经滑过去的页面的值,保证每一页滑动时都是从0 ~ 屏幕宽

关键代码已在工程中标注

希望可以帮助到你

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们都知道,ios没有日历控件,要想在项目中加入日历功能,就得自己开发。github上面也有很多大神封装好的日历控...
    小羊爱学习阅读 6,283评论 2 6
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,698评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 介绍 UIView 会占用屏幕上一个矩形的空间。 主要处理两件事:画出矩形控件,并处理其中的事件。 UIView ...
    半壶雪阅读 950评论 0 0
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,743评论 1 180