1. 程式人生 > >ios 實現白天夜景切換的方案

ios 實現白天夜景切換的方案

專案中要做白天夜景切換的功能,寫了個擴充套件方便用,記錄一下。不太完善,主要是提供一種思路。。。,歡迎大牛指點一下。

先附一個連結 

https://github.com/evolFe/DayNightDemo

效果圖:

利用category封裝 使用是這樣的

實現思路:

1,色值變化,主要是view的backgroundcolor,label.texColor, button.titlecolor等等。。。

要是白夜切換肯定要像實現多語言一樣 有個key 然後動態繫結到檢視上

這裡實現是通過一個列舉,這樣寫程式碼的時候比價方便

2 圖片變換,包括imageView 還有button

key 的話 就是圖片本身名字 ,要是夜景的話 圖片名字後加_night 例如 mine_bg.png 夜景就是 mine_bg_night.png

然後寫一個字串的 擴充套件

 

第二步,Key 解決了以後 接下來就是繫結的問題

建立一個容器類 儲存該物件的target 併為物件新增方法和引數, 引數是多引數的。

這裡是新增方法引數的實現, 是儲存到一個數組裡面了, 因為有可能例如button 可能設定了背景色,和title 圖片等,多個方法儲存

 

這裡是建立容器類的時候 新增通知。。。 並遍歷儲存的物件方法並執行。。 支援多引數

 

接下來是category 繫結的問題 使用runtime特性

基本就完事兒了

此處單例使用的比較安全的方式,哈哈哈,因為之前被人問住了,所以儘量標準化寫。。。

只是添加了幾個簡單的功能,專案還在寫,用到時候繼續補充。。。