2012-10-10 3 views
9

次のコードを使用して通常のUIButtonをカスタマイズすると、UIBarButtonItemsおよびテキストフィールドのクリアボタンにも影響します。UIBarButtonItemsに影響を与えずにUIButtonの外観を設定する方法は?

[[UIButton appearance] setBackgroundImage:greenButtonImage forState:UIControlStateNormal]; 

私ははないは、通常の丸い矩形ボタン、すべての後者の要素をカスタマイズしたいん。私はappearanceWhenContainedInを使用して実現:UIBarButtonItemsとUITextFieldのカスタム外観を設定するために使用することができますが、私はこれらのボタンを標準のままにしたい。サブクラス化は、このような単純なタスクでは必要ないので、ここではオプションではありません。

同様の質問がありますが、問題は解決していません。私が前に使ってきたWhy does -[[UIButton appearance] setBackgroundImage] affect the initial appearance of UIBarItem objects and how do you correct it?

+1

私はUITextFieldの問題を明確に背景イメージに設定することで問題を解決できました。しかし良い解決策ではありません。 –

+0

UIBarButtonItemsをどのように初期化していますか? "customView"プロパティをUIButtonオブジェクトに設定していますか?あなたがUIBarButtonItemを作成する方法のサンプルコードを提供できるなら、私は助けることができると確信しています...私は、アプリケーションの外観プロキシとバーボタン/ UIButtonsで多くのカスタム化を行い、これらの問題はありませんでした。 – DiscDev

答えて

2

一つの解決策はUINavigationBarの内部に含まUIButtonsための「backgroundImageの」プロパティからnilにある:

[[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundImage:nil forState:UIControlStateNormal]; 

これはあなたが触れることなく、他のケースでUIButtonsをカスタマイズできるようにする必要がありますUINavigationBar内のUIBarButtonItem内にあるもの。

関連する問題