CYLTabBarController總結(jié)

以下筆記內(nèi)容僅供個人參考,如有理解錯誤,請高抬貴手,仙人指路,互相學(xué)習(xí)進(jìn)步...

使用方法教程

使用方法及教程,查看項目源碼github地址:https://github.com/ChenYilong/CYLTabBarController,非常感謝開源的作者,開源促進(jìn)社區(qū)的發(fā)展,共建和諧社會??!

框架全部文件結(jié)構(gòu)

1.CYLTabBarController
2. CYLTabBar
3.CYLPlusButton
4.UIViewController+CYLTabBarControllerExtention
5.UIView+CYLTabBarControllerExtention
6.UITabBarItem+CYLTabBarControllerExtention
7.UIControl+CYLTabBarControllerExtention
8.CYLConstants
8.總結(jié)

調(diào)用過程

內(nèi)部大概調(diào)用過程:調(diào)用初始化方法-》在初始化方法中進(jìn)行屬性賦值-》視圖生命周期中,出現(xiàn)視圖時-》KVC替換系統(tǒng)的tabbar,使用自定義的CYLTabbar類來代替

外部大概調(diào)用過程:假如有凸起按鈕,先注冊一個凸起類型的按鈕-》設(shè)置各種需要的默認(rèn)數(shù)據(jù)-》調(diào)用初始化方法進(jìn)行賦值-》添加視圖到Window中

UITabbarController總結(jié):

1、自定義了一個UITabbarController的子類,主要實現(xiàn)定義一些全局變量,與tabbar相關(guān)的屬性,以及初始化子類方法,另外添加了一個NSObject對象的分類擴展,定義了一個寬度變化通知。
2、通過外部賦值一個屬性字典,通字典獲取每個item的文本、圖片,以及是否設(shè)置偏移,進(jìn)行設(shè)置tabbar控件的元素item,并且添加子視圖到tabbarcontroller控制器中,另外遍歷tabbar控件子視圖,假如響應(yīng)代理,就給每個item執(zhí)行tabbar點擊control的代理方法

CYLTabbar總結(jié):

通過繼承系統(tǒng)的UITabbar控件,自定義了CYLTabbar類,這個類是是通過KVC替換UITabbarController中的系統(tǒng)UITabbar,替換為CYLTabbar

主要功能:
1、根據(jù)遍歷tabbar中的子視圖,給每個Item對象的圖片做偏移量設(shè)置處理,設(shè)置每個item的寬度,并且KVO進(jìn)行監(jiān)聽item的寬度變化,發(fā)出通知
2、通過獲取凸起按鈕的代理設(shè)置的偏移常量,高度比例因子,凸起按鈕的index位置,進(jìn)行布局更新每個item的位置,并且設(shè)置處理好凸起按鈕的位置。
3、通過對點擊視圖的方法進(jìn)行改寫,進(jìn)行凸起按鈕的點擊事件處理,保證點擊按鈕凸出部分可以響應(yīng)點擊事件

CYLPlusButton總結(jié):

1、定義了一個凸起按鈕CYLPlusButton的代理協(xié)議,通過這個代理來初始化按鈕,初始化按鈕跳轉(zhuǎn)的視圖,位置,按鈕高度因子,高度偏移常量。按鈕是否能點擊設(shè)置等
2、自定義了一個CYLPlusButton的UIButton子類, 進(jìn)行注冊一個按鈕,其實就是通過CYLPlusButton代理來創(chuàng)建按鈕實例,并且設(shè)置點擊按鈕的方法處理

** CYLTabBarControllerExtention總結(jié):**

1、自定義了一個CYLTabBarControllerExtention的視圖category分類,主要實現(xiàn)定義tabbar中的badge提醒視圖以及相關(guān)的屬性,以及定義一些操作方法進(jìn)行視圖選擇,以及選擇完成后的操作執(zhí)行

** CYLTabBarControllerExtention總結(jié):**

1、自定義了一個CYLTabBarControllerExtention的View分類,主要用來判斷視圖View是否是與tabbar相關(guān)的
2、提供入口設(shè)置badge的視圖的顏色以及圓角修改

UITabbarController總結(jié):

1、自定義了一個UITabBarItem的分類,實現(xiàn)setBadgeValue與cyl_setBadgeValue方法交換

** CYLTabBarControllerExtention總結(jié):**

1、自定義了一個UIControl的分類,實現(xiàn)runtime添加了badgeView視圖屬性,以及控制是否badge視圖是否顯示,以及控制badge視圖View的偏移設(shè)置

** CYLConstants總結(jié):**

1、自定義了一些宏函數(shù)

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

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