0

現在、UIBarButtonItem の背景画像を設定するためにこれを書いています。

[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];

どうすればこれを乾かすことができますか?

ありがとう、ニコラス

4

3 に答える 3

1

UIBarButtonItem ドキュメントから取得:

一般に、カスタム値が設定されていない他の状態で使用される通常状態の値を指定する必要があります。同様に、プロパティがバーのメトリックに依存している場合 (iPhone では、横方向のバーの高さが標準とは異なります)、UIBarMetricsDefault の値を指定する必要があります。

基本的に、他のカスタム値を設定しない限り、UIControlStateNormal の値のみを設定する必要があります。カスタム値を設定していない場合は、UIControlStateNormal に設定した値がデフォルトになります。

于 2013-09-23T20:34:33.757 に答える
1

enumC では特に便利な方法でan の値を実際に列挙することはできません。あなたができる最善のことは、関心のある値を配列に貼り付けて、それを繰り返すことです。

NSUInteger controlStates[] = {UIControlStateNormal, UIControlStateHighlighted, UIControlStateSelected, UIControlStateDisabled};
NSUInteger numControlStates = 4;
for( NSUInteger i = 0; i < numControlStates; i++ ){
    [[UIBarButtonItem appearance] setBackgroundImage:image 
                                            forState:controlStates[i]
                                          barMetrics:UIBarMetricsDefault];
}
于 2013-09-23T20:32:26.527 に答える