日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ios 主题切换 思路_iOS 使用 NSObject 的分类实现快速切换主题

發布時間:2024/7/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios 主题切换 思路_iOS 使用 NSObject 的分类实现快速切换主题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PYTheme

An easy way to change theme through NSObject's category for iOS.

通過 NSObject 的分類實現使用簡單的主題更換。

Features

輕量級

低耦合

自動管理內存

支持動態更換主題顏色

支持動態更換主題圖片

支持 CocoaPods

Requirements

iOS 7.0 or later

Xcode 7.0 or later

Architecture

NSObject+PYThemeExtension

Renderings

Usage

使用 CocoaPods:

pod "PYTheme"

導入主頭文件#import

手動導入:

將PYTheme文件夾中的所有文件拽入項目中

導入主頭文件#import "NSObject+PYThemeExtension.h"

具體使用

設置主題色

1. 添加控件的屬性 /方法到主題色池中

直接通過屬性

// 按鈕的背景色添加到主題色池中

[button py_addToThemeColorPool:@"backgroundColor"];

通過設置方法并且傳入方法對應參數數組,參數中直接含有顏色參數

// 設置按鈕選中時字體顏色添加到主題色池中

[button py_addToThemeColorPoolWithSelector:@selector(setTitleColor:forState:) objects:@[PYTHEME_THEME_COLOR, @(UIControlStateSelected)]];

當方法參數中沒有直接包含顏色參數,而是經過包裝(如使用 NSDictionary 包裝)

// 設置 tabBar 選中時字體顏色添加到主題色池中

NSMutableDictionary *attrSel = [NSMutableDictionary dictionary];

attrSel[NSForegroundColorAttributeName] = PYTHEME_THEME_COLOR;

[childController.tabBarItem py_addToThemeColorPoolWithSelector:@selector(setTitleTextAttributes:forState:) objects:@[attrSel, @(UIControlStateSelected)]];

2. 設置主題色

// 設置主題色為紅色

[self py_setThemeColor:[UIColor redColor]];

設置主題圖片與配色

1. 添加相關控件對象到主題圖片池中

// 添加 tabBarItem 到主題圖片池中

[tabBarItem py_addToThemeImagePool];

2. 根據需求設置控件的相關屬性

// 重新加載主題圖片,并設置主題色為紅色

[self py_reloadThemeImageWithThemeColor:[UIColor redColor] setting:^(const NSArray *objects) {

// 根據控件類型完成相關設置

}

使用注意

對象不能是UIAppearance,否則將無法添加到主題池中

如下:將導致 navigationBar 無法添加到主題色池中

// 獲取全局 navBar

UINavigationBar *navBar = [UINavigationBar appearance];

// 添加背景色到主題色池中

[navBar py_addToThemeColorPool:@"barTintColor"];

使用py_addToThemeColorPoolWithSelector:objects:設置參數數組時注意:

方法參數必須按順序一一對應,如果涉及到的主題色設置使用 PYTHEME_THEME_COLOR 宏定義代替

如果數組中某個參數為 nil ,需包裝為 [NSNull null] 對象再添加到數組中

如果要使圖片隨著主題色變化而渲染成主題顏色,需要設置RenderingMode為: UIImageRenderingModeAlwaysTemplate

期待

如果您在使用過程中有任何問題,歡迎issue me! 很樂意為您解答任何相關問題!

與其給我點 star ,不如向我狠狠地拋來一個 BUG !

如果想要參與這個項目的維護或者有好的功能,歡迎 pull request !

如果您想要更多的接口來自定義或者建議 /意見,歡迎issue me!我會根據大家的需求提供更多的接口!

如果您在使用中覺得略有不適,歡迎聯系我 QQ:499491531 ,希望一起完善此項目,讓它變成更強大,能夠滿足大多數用戶的需求!

Licenses

All source code is licensed under the MIT License.

總結

以上是生活随笔為你收集整理的ios 主题切换 思路_iOS 使用 NSObject 的分类实现快速切换主题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。