1

UIAppearance を介して UIToolbar および UISearchBar アスペクトをカスタマイズしているときに、認識されないセレクターがインスタンス エラーに送信されます。

奇妙なことに、6.1 以下でのみクラッシュし、iOS7 では問題なくクラッシュしません。

これは私が使用しているコードです:

[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbarBackground"] forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefaultPrompt];
[[UIToolbar appearance] setTintColor:[UIColor whiteColor]];
[[UISearchBar appearance]setBackgroundImage:[UIImage imageNamed:@"searchBarBackground"]  forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[[UISearchBar appearance] setTintColor:[UIColor whiteColor]];

そしてそれはうまくいくはずです。しかし、iOS 6.1 Simulator でアプリを起動するたびに、

-[_UIAppearance setBackgroundImage:forBarPosition:barMetrics:]: unrecognized selector sent to instance 0xaba4550

UIToolbar と UISearchBar の両方。行にコメントを付けると、アプリが正常に起動するため、それらがクラッシュを引き起こしていると確信しています。

このコードの何が問題になっていますか? 私は本当にこれで立ち往生しています。

編集 次のように、カスタマイズする必要があるクラスでアスペクトを設定することで、なんとか機能させることができました。

[[UISearchBar appearance]setBackgroundImage:[UIImage imageNamed:@"searchBarBackground"]];

しかし今、SearchBar をタップすると、デフォルトのアスペクトが表示されます。

4

2 に答える 2