特斯拉組件 ios高性能開發(fā)應(yīng)用
簡要說明下各個協(xié)議的作用:
FMPageDataSource, 提供子頁面,子頁面的個數(shù),子頁面展示的frame給PageController。
FMPageDelegate, 提供頁面交互切換和非交互切換的回調(diào)給上層以及頁面的縱向滑動和橫向滑動的contentoffset給上層。
FMTabDataSource, 提供TabView的具體展示效果。
FMTabDelegate, 提供TabView的點擊響應(yīng)給上層。
FMCoverController, 提供CoverView給CoverController.
其中,F(xiàn)MTabController默認遵循FMTabDataSource,F(xiàn)MTabDelegateSource,F(xiàn)MPageDataSource,F(xiàn)MPageDelegate協(xié)議。FMCoverController遵循FMCoverDatasource協(xié)議。
2.2 接口設(shè)計
接口遵循高內(nèi)聚和低耦合的特性,只把Delegate和DataSource開放給上層,同時做接口分離,把Page,Tab,Cover特性的分離。 代碼如下:
@interfaceFMTabController : FMBusinessViewController 《FMPageControllerDataSource, FMPageControllerDelegate, FMTabDataSource, FMTabDelegate》@interfaceFMCoverController : FMTabController 《FMCoverDataSource》2.3 Child頁面的生命周期管理和切換。
1.UIScrollView支持分頁效果,手勢處理及交互操作多個回調(diào)方法可以實現(xiàn)頁面的切換效果。
2.生命周期管理有兩種方式 a.頻繁地add/remove ChildController b.使用下面的代碼實現(xiàn)生命周期的管理:
1)shouldAutomaticallyForwardAppearanceMethods 2)beginAppearanceTransition: animated: 3)endAppearanceTransition
a.會產(chǎn)生一個重大缺陷,就是頻繁切換的卡頓問題。
b.不需要頻繁地去調(diào)用add/remove,1)方法避免了 add/remove產(chǎn)生的生命周期,2)和3)保證了開發(fā)者可以自己控制ChildController的生命周期。
Page的生命周期圖如下:
初次或者reloadPage
交互切換和非交互切換 2.4 性能問題擴展
以下通過Iphone5 模擬器 10.3系統(tǒng),與UIPageViewController做了性能上的對比。
UIPageViewController 快速切換內(nèi)存占用情況
UIPageViewController 快速切換GPU占用情況
Page組件快速切換內(nèi)存占用情況
Page組件快速切換GPU占用情況
從上圖中內(nèi)存占用圖標的波動情況可以看出UIPageViewController在快速切換的時,會盡可能快地釋放掉不用的controller及其view(主要是view)以保證內(nèi)存占用較小,所以圖標指標先才會頻繁的波動,與UIPageViewController作對比,Page組件用空間換時間的策略避免頁面卡頓。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
特斯拉組件 ios高性能開發(fā)應(yīng)用下載
相關(guān)電子資料下載
- iOS17.1可能明天發(fā)布,iOS17.1主要修復(fù)哪些問題? 380
- 華為全新鴻蒙蓄勢待發(fā) 僅支持鴻蒙內(nèi)核和鴻蒙系統(tǒng)應(yīng)用 719
- 蘋果手機系統(tǒng)iOS 17遭用戶質(zhì)疑 731
- iPhone12輻射超標?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標明年智能手機出貨7000萬部;消息稱 MiOS 僅限國內(nèi),小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機身過熱 216
- Testin云測兼容和真機服務(wù)平臺中上線iPhone 15系列手機 208
- 利爾達推出搭載HooRiiOS的Matter模組 145
- 運放參數(shù)解析:輸入偏置電流(Ibias)和失調(diào)電流(Ios) 128
- 昆侖太科發(fā)布支持國產(chǎn)飛騰騰銳D2000芯片的開源BIOS固件版本 448