3

appearanceiOS5デバイス専用のアプリを書いているので、新しいAPIを最大限に活用しようとしています。

UIToolbar次の方法で背景を変更できます。

[[UIToolbar appearance] setBackgroundImage:<myImage> forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];

すべて正常に動作しますが、より多くのカスタマイズを探しているので、の使用法について疑問に思っていたので、UIToolbarPositionいくつかの問題が発生しました。InterfaceBuilderを使用するか、UIToolbarプログラムで追加すると、メインビューの上部に配置されます。したがって、UIToolbarPositionとして設定されることを期待していますUIToolbarPositionTopが、テストしたところ、自動的に機能せず、次のことを可能にするAPIを見つけることもできません。セットUIToolbarPosition(はい、私はすでにそれをググった)。

だから-主な質問-それを適切に作成してタグ付けする方法、それはまたはにUIToolbarしか応答できないので、私は使用することができます:UIToolbarPositionTopUIToolbarPositionBottom

[[UIToolbar appearance] setBackgroundImage:<myImage_1> forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault];

[[UIToolbar appearance] setBackgroundImage:<myImage_2> forToolbarPosition:UIToolbarPositionBottom barMetrics:UIBarMetricsDefault];

編集:尋ねられたように、より多くの詳細。

アプリケーションに複数のツールバーがあります。たとえば、2つの画面の画面上部にあるツールバー、キーボードのアクセサリビューとして機能するツールバー、モーダル画面の下部にある2つのツールバーなどです。各画面のツールバーをカスタマイズするのではなく、新しい外観APIを最大限に活用したいので、UIToolbarPosition全体とその使用方法について質問しています。

各UIToolbarを個別にカスタマイズするだけで目的を達成できることはわかっていますが、新しいAPIとUIToolbarPositionの使用法に興味があります。

4

1 に答える 1

2

UIToolbarPostionこれは、プログラムで設定することになっているプロパティではありません。代わりに、ツールバーがさまざまな位置にあるときにツールバーを処理する方法をプログラムに指示できます。これは主に、画面の変更(自動回転)によってプッシュされているツールバー、または可変コンテンツを持つナビゲーションコントローラーのようなものにあるツールバー用です。

そうは言っても、ツールバーに直接アクセスしてツールバーを使用したり、プロパティを設定したりする場合は、いくつかの方法があります。タグ付けが何であるかを知っているようです。これは有効な方法です。ツールバーにIBまたはプログラムでタグを付けるだけです(IBのサイドバーでタグプロパティを編集するか.tag、ツールバーを宣言するときにプロパティを使用します)。次に、このviewWithTagメソッドを使用してツールバーにアクセスできます。ただし、より良い方法は、ツールバーからヘッダーファイルにcontrolキーを押しながらドラッグして、ツールバーのIBプロパティ(ラベルやボタンの場合と同じ)を作成することです。次に、あなたはただ書くことができます[nameOfToolbarProperty doSomeMethod]。コードを使用してツールバーを作成している場合は、同じ方法でツールバーを参照します。

UIToolbar *tref = [/*toolbar creation code*/];

結論として、あなたのコード

[[UIToolbar appearance] setBackgroundImage:<myImage_1> forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault];

追加することで動作させることができます

//Connect this to your toolbar in Interface Builder
@property (weak, nonatomic) IBOutlet UIToolbar *tref;

あなたのヘッダーに。次に、

 [tref setBackgroundImage:<myImage_1> forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault];

これは、ツールバーが一番上の位置にある場合に表示する画像をプログラムに指示するだけであることに注意してください。ツールバーの位置は設定されません。UIToolbarPositionは定数です(したがって、設定できません)。

于 2012-07-23T12:26:00.647 に答える