iOS項目開發(fā)框架“完全體”(一)

注:本框架為多數(shù)項目開發(fā)基類通用框架結構,如有特殊需求可進行單獨定制

  • 框架目錄結構如下:
406E5BD1-3677-4DB4-B7C4-2F3493E9ECDE.png
  • 框架在使用的過程中還是發(fā)現(xiàn)了一些問題的,開始的時候是使用的MVC目錄結構,后續(xù)項目維護由于項目龐大的業(yè)務邏輯改為MVVM,下面說一下兩者的優(yōu)缺點吧

  • MVVM

優(yōu)點:業(yè)務邏輯清晰,可重復使用view,代碼高度解耦
缺點:過于分離的層次造成項目維護代碼較高,代碼量也相對增加,后期修復bug時成本也較高,不易維護

  • MVC

優(yōu)點:代碼邏輯清晰,較為容易理解,層次較為分明
缺點:由于龐大的業(yè)務邏輯都會堆放在Controller造成控制器過于臃腫,view以及一些其他類也較為難
以實現(xiàn)循環(huán)利用,難以分離

基類框架的設計初衷

響應式編程和函數(shù)式編程思想

  • 這里說明一下,如果有同學不理解什么是響應式編程和函數(shù)式編程的話,請點擊下面的鏈接http://www.itdecent.cn/p/7017a220f34c

  • 提前看下接口吧

接口
//1.1.2 標題文本、顏色、字體
- (void)naviTitle:(NSString *)title color:(UIColor *)color font:(UIFont *)font;
- (HRBaseViewController *(^)(NSString *title))setupNaviTitle;
- (HRBaseViewController *(^)(UIColor *))setupTitleColor;
- (HRBaseViewController *(^)(UIFont *))setupTitleFont;

//1.2.1 左按鈕標題
- (void)leftItemTitle:(NSString *)title color:(UIColor *)color font:(UIFont *)font action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *title, UIColor *color, UIFont *font, void(^action)()))setupLeftTitleItem;

//1.2.2 左按鈕圖片
- (void)leftImageItem:(NSString *)imageName action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *imageName, void(^action)()))setupLeftImageItem;

//1.2.3 左按鈕通用
- (void)leftItems:(NSArray <HRBarItem *>*)items actions:(void(^)(NSInteger index))actions;
- (HRBaseViewController *(^)(NSArray <HRBarItem *>*items,void (^actions)(NSInteger index)))setupLeftItems;

//1.3.1 右按鈕標題
- (void)rightItemTitle:(NSString *)title color:(UIColor *)color font:(UIFont *)font action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *title, UIColor *color, UIFont *font, void(^action)()))setupRightTitleItem;

//1.3.2 右按鈕圖片
- (void)rightImageItem:(NSString *)imageName action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *imageName, void(^action)()))setupRightImageItem;

//1.3.3 右按鈕通用
- (void)rightItems:(NSArray <HRBarItem *>*)items actions:(void(^)(NSInteger index))actions;
- (HRBaseViewController *(^)(NSArray <HRBarItem *>*items,void (^actions)(NSInteger index)))setupRightItems;

//1.4.1 系統(tǒng)返回按鈕隱藏
@property (assign, nonatomic) BOOL hiddenBackItem;
//- (HRBaseViewController *(^)())setupHiddenBackItem;

具體使用以及設計思路會在下個章節(jié)進行說明,敬請期待...

有任何問題可以隨時進行咨詢,歡迎...
郵件:750460196@qq.com

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容