iOS全局設置xib主題顏色

之前多次看到有人問怎么實現(xiàn)xib中的顏色管理,就是app切換主題色的時候,xib中的顏色也會跟著變化。其實自己一開始也是沒有比較好的方案的,后來學習到IB_DESIGNABLEIBInspectable兩個屬性,聯(lián)想到xib設置主題色,自己試了下,通過這種方式是可以實現(xiàn)全局設置xib的主題色的,現(xiàn)總結(jié)在這,希望可以幫到更多需要的兄dei。

Tips:關(guān)于IB_DESIGNABLEIBInspectable這兩個屬性,可以參考這篇文章


Ⅰ給UIView增加分類Category,在.h中聲明一個bgColor屬性,使用IBInspectable修飾該屬性,如下

#import <UIKit/UIKit.h>

@interface UIView (LGCategory)

@property (nonatomic, strong) IBInspectable UIColor * bgColor;

@end

Ⅱ 完成上一步之后,在xib中就會增加一個輸入框,如圖所示:

image.png

Ⅲ 選中想要跟隨主題色變色的控件,給BgColor屬性隨便設置一個顏色即可,如圖:

image.png

Tips:不想跟隨主題色變色不需要設置該屬性,直接Default即可

Ⅳ 然后重寫第一步聲明的那個屬性的setter和getter方法,如下:

#import "UIView+LGCategory.h"

@implementation UIView (LGCategory)
- (UIColor *)bgColor
{
    return self.backgroundColor;
}

-(void)setBgColor:(UIColor *)bgColor
{
    self.backgroundColor = THEME_COLOR;      // 在這里將顏色改為自己的主題色即可
}
@end

Ⅴ 然后在切換主題色的時候直接修改THEME_COLOR就可以了,效果如下:

WechatIMG85.png

Ⅵ 如果想要設置文本顏色,可以增加一個TextColor屬性,然后在setter方法里面判斷一些類型,設置文字顏色即可。如果各位大佬還有更好的方案,請留言討論~

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

相關(guān)閱讀更多精彩內(nèi)容

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