我被一位客戶問到製作一個「skinnable」應用程序,我真的不知道這意味着什麼。 我瘋狂搜索,我沒有找到明確的答案或例子。如何讓iPhone應用程序「換膚」?
如果有人有這方面的線索,任何提示將不勝感激。
謝謝。
我被一位客戶問到製作一個「skinnable」應用程序,我真的不知道這意味着什麼。 我瘋狂搜索,我沒有找到明確的答案或例子。如何讓iPhone應用程序「換膚」?
如果有人有這方面的線索,任何提示將不勝感激。
謝謝。
對於iPhone應用程序,其中大部分的GUI設計由操作系統提供,您可以通過設置自定義導航欄背景圖像,自定義按鈕圖形,以及不同的字體/大小/權重和空格來實現。確保你與熟悉iPhone GUI的設計師合作(如果你不與設計師密切合作,這將是一場噩夢)。
我最近爲想要高度定製的GUI的客戶提供了一個應用程序:http://itunes.apple.com/us/app/gogoparis/id428497937?mt=8。一個'skinnable'應用程序會有幾個這樣的設置,所以用戶可以選擇幾種不同的整體樣式。 (我希望你的客戶端有一個巨大的設計預算!)
這裏我的文章應該可以幫助您開始:
What is the recommended method of styling an iOS app?
如果需要現場主題的變化,在這個例子中,每個主題可以張貼通知時用戶選擇另一個主題(或皮膚) - 然後您可以更新主題實例本身。
或者,您可以爲映射到主題工廠的主題創建標識符(NSCFDictionary)。與主題工廠一起使用的特定視圖的示例標識符可以是字符串MONImageSelectorTableCellThemeIdentifier
。
爲例經理/工廠負責處理所有主題加載並出售引用主題:
@interface MONThemeManager : NSObject
//...
- (MONTheme *)themeForCurrentlySelectedSkinForViewWithIdentifier:(NSString *)identifier;
//...
@end
除此之外,這是很難回答的更詳細你的問題不知道你的要求。皮膚應用的實現可以從簡單到非常非常複雜。祝你好運。
這裏已經有一些很好的答案,但是我想補充一點,如果你使用UI工具包,比如Three20 ,你可以像使用CSS一樣使用CSS皮膚。
我不知道這是舊的文章,但我想我會分享對此事:)
要進行任何可可應用程序換膚功能,你需要你想到的應用3個方面我一分錢:
1)統一性:通過這個我的意思是,在所有的窗口,視圖(包括按鈕,文本輸入等),你想有一個'標準',將貫穿整個應用程序。這是你需要看的第一件事。雖然iOS和OS X都已經有了'主題',就像蘋果默認的陰影和鋪設方式一樣,你可以重寫這些(參考單個視圖/窗口等等...文檔
2)性能:隨着皮膚等...性能始終是一個問題,當談到編寫自己的drawRect等方法。蘋果代碼已經被優化了,所以你需要密切關注應用程序的性能,而你正在這樣做。很好的例子是:我使用梯度圖像,還是使用NSGradient?這兩者在渲染時都會遇到性能問題,但這是兩者中哪一個更好的問題3)userDefaults:這通常是您將獲得「外觀設置」的區域從。 userDefaults基本上是存儲您通常在偏好窗格中設置的所有信息的位置。
如果我是你,我會考慮它的類參考:
此外,這裏使用userDefaults的一個漂亮的例子:
http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/
希望這有助於!
我實際上對我的項目做了什麼。我決定使用多個故事板,讓我更好地控制每個主題的整個用戶界面和用戶體驗。我以編程方式將它們連接在一起,通過一個將它們鏈接在一起的主故事板。這就是我所做的,並且它工作得非常好。性能非常好,同時仍然保持對每個主題的高水平細粒度控制。你甚至可以讓你的標題和實現文件對於單獨的視圖控制器保持一致,只要你保持故事板上的名字相同即可。
因此,例如,我正在開發的一個名爲Jam-mout(音樂播放器)的應用程序有多個高質量主題。 (附圖)。每個主題都有自己的故事板。
你應該向你的客戶要求澄清! – Pepe
我問。我還沒有得到答覆,但想從外面得到一個想法,幫助我更快地理解。 – jorjap