8

私は今ios6アプリをios7 sdk(Xcode 5とマーベリックスを使用)に移植しており、UIBarButtonItemの色を変更しようとしましたが、これが私がやろうとしていることです:

self.navigationController.navigationBar.tintColor 

- バーの色を変更しますが、アイテムの色は変更しません

[[UINavigationBar appearance] setTintColor:[UIColor greenColor]];
[[UIBarButtonItem appearance] setTintColor:[UIColor greenColor]];

- 機能しない、同じ間違った色

self.navigationItem.rightBarButtonItem.tintColor = [UIColor greenColor];
self.navigationItem.leftBarButtonItem.tintColor = [UIColor greenColor];    

- 機能しない、同じ間違った色

    UIBarButtonItem *close = [[UIBarButtonItem alloc] 
                             initWithTitle:NSLocalizedString(@"Close",@"") 
                                     style:UIBarButtonItemStyleDone target:self
                                    action:@selector(closeAddressBook:)];

           close.tintColor = [UIColor greenColor];

- 機能しない、同じ間違った色

  for self.filterSegment.tintColor =  [UIColor greenColor] where UISegmentedControl *filterSegment;

選択されていないセグメントは正しい色で表示されますが、選択されたセグメントは同じ間違った色です。

何か案は?

4

6 に答える 6

15

WWDC 2013 - iOS 7 向けのアプリの外観のカスタマイズのおかげで、何をする必要があるかがわかりました。

self.navigationController.navigationBar.tintColor = [UIColor redColor];

これにより、アプリの他のビューにフィルターが適用されるため、最初の画面に配置します。次の画面に進むと、戻るボタンも赤くなっていることがわかります。

ナビゲーションバーの色を変更するには

self.navigationController.navigationBar.barTintColor = [UIColor greenColor];

iOS7 未満のデバイスでアプリを動作させる場合は、セレクターに応答することを確認する必要があります。

if([self.navigationController.navigationBar respondsToSelector:@selector(barTintColor)]) {

}
于 2013-09-16T21:57:12.740 に答える
1

1-ではiOS 7tintColorプロパティはバーの色を設定するために使用されなくなりました。代わりに、プロパティを使用して背景色を変更します。次のコードをofbarTintColorに挿入できます。didFinishLaunchingWithOptions:AppDelegate.m

[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]];

2- iOS 7 では、すべてのバー ボタンが縁なしです。戻るボタンは、シェブロンに前の画面のタイトルを加えたものになりました (または、前の画面のタイトルが nil の場合は、ボタンのタイトルとして「戻る」を表示するだけです)。戻るボタンに色合いを付けるには、tintColorプロパティを変更します。これにより、カスタム カラーでアプリのスキンをすばやく簡単に設定できます。以下は、サンプル コード スニペットです。

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
于 2013-10-06T01:09:07.960 に答える
1

tintColor代わりに、アプリのUIWindowインスタンスでプロパティを設定することをお勧めします。アプリ全体で使用している標準の「アクセント」カラーがある場合、アプリ内のすべてのコントロールがその色で着色されます。

于 2013-09-17T00:06:02.403 に答える
0

self.navigationController.navigationBar.tintColor = [UIColor redColor];

これは、戻るボタンの色を設定する方法です。

IOS 6 を使用してアプリを開発した人へのメモとして、上記のコードを使用してナビゲーション バーの色を設定したため、以前の設定を削除しないと、[戻る] ボタンの変更が表示されません。

于 2013-09-30T16:11:50.830 に答える