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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ios换肤基本实现

發布時間:2025/7/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios换肤基本实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,換膚的思路大概都是一樣的。幾種方法的比較。

1.傳值:一個工程中不知道有多少個頁面。那么傳值有些不太現實。

2.通知:這個還可以。那么,有些頁面還沒有被創建出來,這時改變樣式呢?

3.數據持久化:

?

換膚工具類

SkinTool.h

#import <UIKit/UIKit.h>@interface SkinTool : NSObject+ (void)setSKinColor:(NSString *)skinColor;+ (UIImage *)skinToolWithImageName:(NSString *)imageName;+ (UIColor *)skinToolWithLabelColor;@end

?

SkinTool.m

#import "SkinTool.h"@implementation SkinToolstatic NSString *_skinColor;+ (void)initialize {_skinColor = [[NSUserDefaults standardUserDefaults] objectForKey:@"skinColor"];if (_skinColor == nil) {_skinColor = @"blue"; //這里是默認顏色。如果沒有設置顏色,就是這個顏色。} }+ (void)setSKinColor:(NSString *)skinColor {_skinColor = skinColor;// 保存用戶選中的皮膚顏色[[NSUserDefaults standardUserDefaults] setObject:skinColor forKey:@"skinColor"];[[NSUserDefaults standardUserDefaults] synchronize]; }+ (UIImage *)skinToolWithImageName:(NSString *)imageName {NSString *imagePath = [NSString stringWithFormat:@"skin/%@/%@", _skinColor ,imageName];return [UIImage imageNamed:imagePath]; }+ (UIColor *)skinToolWithLabelColor {// 1.獲取plist的路徑NSString *plistName = [NSString stringWithFormat:@"skin/%@/bgColor.plist", _skinColor];NSString *plistPath = [[NSBundle mainBundle] pathForResource:plistName ofType:nil];// 2.讀取顏色的點擊NSDictionary *colorDict = [NSDictionary dictionaryWithContentsOfFile:plistPath];// 3.讀取對應顏色的字符串NSString *colorString = colorDict[@"labelBgColor"];// 4.獲取顏色數組NSArray *colorArray = [colorString componentsSeparatedByString:@","];// 5.讀取對應RGBNSInteger red = [colorArray[0] integerValue];NSInteger green = [colorArray[1] integerValue];NSInteger blue = [colorArray[2] integerValue];return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:1.0]; }@end

?

控制器中

- (void)viewDidLoad {[super viewDidLoad];[self changeImages]; } - (IBAction)changeToOrangeSkin {[SkinTool setSKinColor:@"orange"];[self changeImages]; }- (IBAction)changeToBlueSkin {[SkinTool setSKinColor:@"blue"];[self changeImages]; }- (IBAction)changeToRedSkin {[SkinTool setSKinColor:@"red"];[self changeImages]; }- (IBAction)changeToGreenSkin {[SkinTool setSKinColor:@"green"];[self changeImages]; }- (void)changeImages {self.faceImageView.image = [SkinTool skinToolWithImageName:@"face"];self.heartImageView.image = [SkinTool skinToolWithImageName:@"heart"];self.rectImageView.image = [SkinTool skinToolWithImageName:@"rect"]; }

或者

@implementation TwoViewController- (void)viewDidLoad {[super viewDidLoad]; }- (void)viewWillAppear:(BOOL)animated {[super viewWillAppear:animated];self.faceImageView.image = [SkinTool skinToolWithImageName:@"face"];self.heartImageView.image = [SkinTool skinToolWithImageName:@"heart"];self.rectImageView.image = [SkinTool skinToolWithImageName:@"rect"];self.testLabel.backgroundColor = [SkinTool skinToolWithLabelColor]; }@end

?

轉載于:https://www.cnblogs.com/kinghx/p/5294463.html

總結

以上是生活随笔為你收集整理的ios换肤基本实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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