https://github.com/Tencent/QMUI_iOS
QMUI iOS 是一個致力于提高項(xiàng)目 UI 開發(fā)效率的解決方案,其設(shè)計(jì)目的是用于輔助快速搭建一個具備基本設(shè)計(jì)還原效果的 iOS 項(xiàng)目,同時(shí)利用自身提供的豐富控件及兼容處理蹦骑, 讓開發(fā)者能專注于業(yè)務(wù)需求而無需耗費(fèi)精力在基礎(chǔ)代碼的設(shè)計(jì)上。不管是新項(xiàng)目的創(chuàng)建,或是已有項(xiàng)目的維護(hù)淑蔚,均可使開發(fā)效率和項(xiàng)目質(zhì)量得到大幅度提升锈遥。
功能特性
全局 UI 配置
只需要修改一份配置表就可以調(diào)整 App 的全局樣式,包括顏色渗鬼、導(dǎo)航欄览露、輸入框、列表等譬胎。一處修改差牛,全局生效。
UIKit 拓展及版本兼容
拓展多個 UIKit 的組件堰乔,提供更加豐富的特性和功能偏化,提高開發(fā)效率;解決不同 iOS 版本常見的兼容性問題镐侯。
豐富的 UI 控件
提供豐富且常用的 UI 控件侦讨,使用方便靈活,并且支持自定義控件的樣式苟翻。
高效的工具方法及宏
提供高效的工具方法韵卤,包括設(shè)備信息、動態(tài)字體崇猫、鍵盤管理沈条、狀態(tài)欄管理等,可以解決各種常見場景并大幅度提升開發(fā)效率诅炉。
QMUICore:配置表蜡歹、全局的宏、工具方法等汞扎,是所有 QMUI 類的基礎(chǔ)代碼季稳。
QMUIMainFrame:幾個常用的 UIViewController 的基類,建議將這幾個基類作為你項(xiàng)目里的對應(yīng) class 的父類澈魄,QMUI iOS 有大量功能也是基于這幾個基類實(shí)現(xiàn)景鼠。
UIKitExtensions:對系統(tǒng) UIKit 的拓展,所有 Category 的方法痹扇、屬性均會帶 qmui_ 前綴铛漓,以避免沖突。
QMUIComponents:提供大量常用的控件鲫构,具體的控件列表請查看功能列表浓恶,至于效果展示、使用代碼示例請查看 QMUI Demo结笨。
QMUIResources:存儲 QMUI 控件里可能用到的一些圖包晰,例如表情面板的刪除按鈕湿镀、選圖控件的 checkbox、QMUITips 那些成功伐憾、失敗的 icon 等勉痴。
QMUIKit Classes
QMUIAlbumViewController用于展示當(dāng)前設(shè)備相冊里的相簿列表
QMUIAlertController用于代替系統(tǒng)的 UIAlertController 的模態(tài)彈窗控件
QMUIAsset封裝了系統(tǒng)的 PHAsset,用于表示相簿里的一個資源
QMUIAssetsGroup封裝了系統(tǒng)的 PHAssetCollection树肃、PHFetchResult蒸矛,用于表示一個相簿或者相簿資源合集
QMUIAssetsManager相簿相關(guān)的工具類
QMUIBadge用于在 UIBarButtonItem、UITabBarItem 上顯示未讀數(shù)(badge)和未讀紅點(diǎn)(updatesIndicator)胸嘴,且對設(shè)置的時(shí)機(jī)無要求雏掠,不用擔(dān)心 valueForKey:@"view" 返回 nil 的情況。
QMUIButton用于代替系統(tǒng)的 UIButton 的按鈕控件
QMUINavigationButton專用于頂部導(dǎo)航欄按鈕的控件
QMUIToolbarButton專用于 UIToolbar 上的按鈕的控件
QMUICellHeightKeyCache配合 UITableView 使用的 cell 高度緩存控件劣像,依賴于 estimatedRowHeight 和 self-sizing cells乡话,具體的使用方式請參考 UITableView (QMUICellHeightKeyCache) 注釋。
QMUICollectionViewPagingLayout一個自定義的 UICollectionViewFlowLayout耳奕,用于橫向的按頁滾動布局
QMUICommonDefines這并非一個 Class蚊伞,而只是一個頭文件,里面定義了大量的常用的宏及 C 函數(shù)
QMUICommonViewController對應(yīng)系統(tǒng)的 UIViewController吮铭,建議作為項(xiàng)目里的所有界面的基類來使用
QMUICommonTableViewController對應(yīng)系統(tǒng)的 UITableViewController,作為項(xiàng)目里的列表界面的基類來使用颅停。
QMUIConfiguration維護(hù)項(xiàng)目全局 UI 配置的單例谓晌,像通用的色值、UIWindowLevel 的維護(hù)癞揉、常見的 UIKit 控件的自定義等纸肉,都由這個類管理。
QMUIDialogViewController通用的彈窗控件
QMUIDialogSelectionViewController基于 QMUIDialogViewController 實(shí)現(xiàn)的支持列表選擇的彈窗喊熟,支持單選和多選柏肪。
QMUIDialogTextFieldViewController基于 QMUIDialogViewController 實(shí)現(xiàn)的帶輸入框的彈窗,支持自動管理提交按鈕的 enable 狀態(tài)芥牌。
QMUIEmotionView通用的表情展示控件烦味,支持橫豎兩個滾動方向,支持翻頁壁拉,帶有 pageControl 和發(fā)送按鈕谬俄。
QMUIEmotionInputManager基于 QMUIEmotionView 實(shí)現(xiàn)的通用表情面板,需要綁定一個 UITextField 或 UITextView 來使用弃理,會接管輸入框的文字刪除溃论,自動判斷當(dāng)前是否正在刪除某個表情的占位符。
QMUIEmptyView通用的空界面控件痘昌,支持顯示 loading钥勋、主標(biāo)題和副標(biāo)題炬转、圖片。
QMUIGridView用于做九宮格布局算灸,根據(jù)指定的列數(shù)和行高扼劈,把每個 item 拉伸到相同的大小。
QMUIHelper UI 工具類
QMUIImagePickerHelper圖片選擇相關(guān)的工具類
QMUIImagePreviewView通用的左右滑動查看大圖的控件乎婿,支持從指定的某張圖開始預(yù)覽测僵。
QMUILabel在 UILabel 的基礎(chǔ)上增加了 3 個特性
QMUIMarqueeLabel跑馬燈效果的 label。
QMUINavigationController對應(yīng)系統(tǒng)的 UINavigationController谢翎,建議作為項(xiàng)目里的所有 navigationController 的基類捍靠。
QMUISearchBar具備 QMUIConfigurationTemplate 內(nèi)設(shè)定的全局樣式的搜索框
QMUITextField用于代替系統(tǒng)的 UITextField
QMUITextView用于代替系統(tǒng)的 UITextView
QMUITheme一個支持全 iOS 版本的換膚組件
QMUIToastView用于顯示 toast 的控件
···
QMUI就是等于封裝好的主題庫,組件庫森逮,方法庫等等榨婆。 個人app建議直接用,能較好的UI效果與提升開發(fā)速度褒侧。