2

次のコードを使用してティントカラーを設定すると動作します

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

しかし、色合いを次のように設定しようとすると - `UIImage *navigationBarCol = [UIImage imageNamed:@"navigatorBar_color.png"];

self.navigationController.navigationBar.tintColor = [UIColor colorWithPatternImage:navigationBarCol]; ` その後、正確な色は表示されず、黒の色合いのみが表示されます。navigationBar_color.png は、設定したい色の単一ピクセル画像です。このメソッドを使用して、プログラム内のテーブル行またはその他のオブジェクトの色を設定していますが、正常に機能します。

さらに、UIColor colorWithPatternImage メソッドは UIColor を返すことになっているため、両方のアプローチも私に似ています。それでは、2 番目のアプローチが navigatiorBar でうまく機能しない理由を教えてください。

4

1 に答える 1

1

NavigationBars およびコントロールの tintColor は、コントロールで使用されるグラデーションを計算するための基礎としてのみ使用されます。グラデーション画像をうまく作成できないため、その一部を使用しているだけです。オーバーライドされた drawRect: メソッドを使用した、UINavigationBar のカスタム サブクラスが必要なようです。

于 2010-01-17T04:48:26.933 に答える