2012-05-17 27 views
4

我需要編寫一個支持主題的iOS Objective-C應用程序。我們的想法是,通過一些配置的控制面板,用戶能夠選擇在我的應用程序中預定義的三個假設主題{redTheme,greenTheme或blackTheme}之一,按以下模式:UI主題的iOS/Objective-C設計模式

1theme http://www.timotteo.com.ar/ThemeChart.png

用戶甚至可以選擇新的主題,而他正在欣賞視圖,視圖會自動重新繪製(儘管這不是基本特徵)。我也希望有一個基本的主題,(例如whiteTheme)。主題不僅會自定義視圖的背景顏色,還會自定義UIButtons,UISliders等的圖像。我的問題是:是否有一種設計模式可以幫助我解決此問題?或者至少有一些面向對象的概念?任何方向表示讚賞。 Txs

+0

結帳這個線程 - http://stackoverflow.com/questions/10632372 /如何應用主題在ios本地應用程序/ 10632688#10632688 – rishi

回答

2

那麼從你準備好的圖表看起來很像戰略模式(或任何數量的類似模式)。多見於:http://en.wikipedia.org/wiki/Strategy_pattern

親切的問候,

+0

很酷。這是我正在尋找的那種東西,可能用@ H2CO3的想法增強了一點。感謝你們 –

2

基本上,你可以考慮WinterBoard用於主題的方法。使您的UI元素圖像名稱統一(例如,buttonBackground.png,statusBar.png等),並將非圖像(純色)信息存儲在PLIST文件中,併爲每個UI控件使用鍵,如

<plist> 
<dict> 
    <key>ButtonBackgroundColor</key> 
    <string>#00ff00</string> 
    <key>LabelBackgroundColor</key> 
    <string>#007fcc</string> 
</dict> 
</plist> 

等等。然後,根據此模式製作主題,在應用中使用相同的圖像名稱/顏色鍵來加載UI數據,但根據當前設置(大概存儲在NSUserDefaults中),從不同的目錄加載資源文件。

我希望這會有所幫助。