2016-04-29 10 views
1

ユーザーの欲しいテーマに従ってカスタマイズ可能なアプリケーションデザインを作成する必要があります。カスタマイズ可能なテーマデザインする色iosでのアプリケーション

色を変更する必要があるのは1か所だけで、アプリケーションテーマ全体を変更する必要があります。

注:異なるテーマにはさまざまなテーマの色が含まれています。

このようなカラーパレットを作成します。この画像で

Set ThemeColors Named Colour Palette

私はGreen代わりのBlueThemeColorを変更した場合、私はThemeColorを使用していたこれまでの、そして、それは代わりにGreenを行うべきであるところ。

しかし、私はこの色をカスタマイズする方法を見つけることができません。それとも他の方法でも、私の要件を達成するために欠けているのですか?

すべてのヘルプ感謝..

+1

私はこれについて簡単な方法は、あなたのカラーパレットをUIColorカテゴリのクラスメソッドとして作成することだと思います。そうすれば、すべての場所で参照できます。しかし、それを一つの場所で変更し、反映を期待してください。 –

答えて

1

あなたがターゲットのiOS 7+とのプロジェクトを開発し、デフォルトiOSのUIオブジェクトを使用している場合は、UIViewののtintColorプロパティを変更し、UIAppearanceプロトコルを使用してテーマを管理することができます。

はいの場合、tintColorをstoryboard/xibから変更することができます。このため

ベストチュートリアル:https://www.raywenderlich.com/108766/uiappearance-tutorial

--- UPDATE ---すべてのiOSバージョンについては

How to create Multiple Themes/Skins for iphone apps?

は、私は、これはあなたを助けることを願っています。 :)

1

あなたは、現在のテーマを保存するためにNSUserDefaultを使用する必要があります。毎回ViewControllerの背景色をNSuserdefaultからviewwillAppearまたはviewDidAppearに設定すると、いつでも戻ることができます。テーマを変更するとuserdefaultの色が変わるので、あなたのすべてのviewcontrollerはその色になります。コメントに尋ねたよう

更新:

あなたは、このような色を保存することができ、

NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults]; 

UIColor *currentThemeColor = [UIColor redColor]; //any color instead of red which user change from settingviewcontroller 

NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:currentThemeColor]; 

[myDefaults setObject:colorData forKey:@"themeColor"]; 

、その後、すべてのビューコントローラから、

-(void)viewWillAppear:(BOOL)animated{ 

NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults]; 

NSData *colorData = [myDefaults objectForKey:@"themeColor"]; 

UIColor *themeBackGroundColor = [NSKeyedUnarchiver unarchiveObjectWithData:colorData]; 

self.view.backgroundColor = themeBackGroundColor; 

} 

は、これが役立つことを願っています:)

+0

ニースの解決策しかし、この方法を使用すると、色を変更するだけですべてのビューを初期化する必要があります。 (私は、行などのような他の用途を欲しがらない場合のイベント) 他のソリューションはありますか? – Simmy

+0

すべてのVCを初期化する必要はありません。いずれかのVCを開くと、そのVCは色を設定します。 VCを開く必要があるときは、デフォルトの背景色を設定します。 – Lion

+0

テーマを変更するときは、すべてのVCをリロードする必要はありません。 – Lion

1

アプリのテーマカラーを作成する

#define APPTHEME_COLOR [UIColor colorWithRed:238.0/255.0 green:82.0/255.0 blue:87.0/255.0 alpha:1.0] 

このテーマは、必要に応じてすべてのコントロールで使用できます。このRGB値を変更すると、テーマが変更されます。

ストーリーボードで色を設定する必要はありません。どこでもコードで設定する必要があります。

希望します。

+0

とにかく私はストーリーボードで色を設定でき、コードで設定する必要はありません。それから私はそれをカスタマイズすることができますか? (カラースウォッチやパレットなどを使って可能かもしれません) – Simmy

0

グローバルな色合いの色を使用してください。 :)

関連する問題