平滑翻頁的優(yōu)雅日歷

也可以不局限于日歷,可以使用在任何橫向滑動,但是每個cell高度不同的地方

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


使用UIcollectionview 添加分頁橫向滑動的方法創(chuàng)建的日歷

因每月日期不同,日歷的高度要隨之變化

在月份滑動結束之后再更新高度,過度會過于生硬

思路創(chuàng)新,在滑動過程中,判斷即將要話到的月份高度

首先判斷當前UIcollectionview 正在向左滑或是右滑

然后判斷即將滑到的月份高度與當前月份高度差

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

這里著重說明一下contentOffset.x,本質上每一頁滑動時都是希望從 0 ~ 屏幕寬

但是以414屏幕寬舉例,從第二頁開始再向右滑動時就已經(jīng)是從414 ~ 828了,這個值如果直接使用越往后越會出現(xiàn)巨大的偏差

所以contentOffset.x在使用時,要減掉已經(jīng)滑過去的頁面的值,保證每一頁滑動時都是從0 ~ 屏幕寬

關鍵代碼已在工程中標注

希望可以幫助到你

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 我們都知道,ios沒有日歷控件,要想在項目中加入日歷功能,就得自己開發(fā)。github上面也有很多大神封裝好的日歷控...
    小羊愛學習閱讀 6,403評論 2 6
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結構(3).初始化時...
    歐辰_OSR閱讀 30,229評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,650評論 1 32
  • 介紹 UIView 會占用屏幕上一個矩形的空間。 主要處理兩件事:畫出矩形控件,并處理其中的事件。 UIView ...
    半壺雪閱讀 1,072評論 0 0
  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,172評論 1 180

友情鏈接更多精彩內(nèi)容