而實現換膚也有兩個思路:
1.通過統一配置和通知中心,這個比較容易,但是每個需要改變的介面都需要監聽通知,比較麻煩
2.通過方法調配技術,也就是在執行時改變對應的設定方法,好像大部分的開源的換膚框架都是通過這個技術實現的,這個待我鑽研一下再寫
關鍵**:
首先是配置你主題需要的顏色和,我的demo的乙個主題配置如下。
這裡是使用json檔案儲存配置的,也可以使用plist,都差不多。這樣做的好處是,當以後需要擴充套件時,增加相應的key就可以很方便。
"pinttheme":,
"images":
},
上面思路裡面說了,構建乙個容器,每次和主題相關的資料都通過這個容器去取。這裡是建立了乙個單例manager,在建立的時候解析json檔案,載入乙個預設的主題
+(skinsettingmanager *)sharedmanager ];
});return manager;
}
再就是通過manager取需要的顏色和
+ (uicolor *)colorforkey:(nsstring *)key
+ (uicolor *)themecolor
+ (uicolor *)lbbgcolor
+ (uicolor *)textcolor
//某個需要響應**設定的介面
// 接聽**改變的通知
[[nsnotificationcenter defaultcenter]addobserver:self selector:@selector(skinchange) name:@"skinchangenotification" object:nil];
//通知處理方法
- (void)skinchange
cell.backgroundcolor = [skinsettingmanager themecolor];
cell.textlabel
.textcolor = [skinsettingmanager textcolor];
cell.imageview
.image = [skinsettingmanager subimage];
大概實現就是這樣了,過兩天再來寫方法調配實現的 IOS開發之TableView詳細解釋
建立 uitableview datatable uitableview alloc initwithframe cgrectmake 0,0,320,420 datatable setdelegate self datatable setdatasource self self.view adds...
iOS開發之應用設定
ios 8之後,應用啟動的時候隱藏狀態列 targets general deploymentinfo hide status bar打勾 應用啟動完成後,狀態列會重新自動顯示 ios 8之前,應用啟動的時候隱藏狀態列 應用啟動後,狀態列不會自動重新顯示,需要手動顯示 ios 8之前少一張啟動怎麼辦...
路徑設定IOS開發(82)之繪製矩形
上班之餘抽點時間出來寫寫博文,希望對新接觸的朋友有幫助。今天在這裡和大家一起學習一下路徑設定 用 cgpathaddrect 向路徑中新增乙個矩形,然後在圖形環境上繪製這條路徑。zyviewcontrollerview.m void drawrect cgrect rect每日一道理 美麗是平凡的,...