3

UISearchBar をカスタマイズする必要があります。

  • 検索テキストの色を変更する
  • ファビコンを変更

Apple が提供する API はありません。ただし、これは可能な解決策の 1 つです。

for(UIView *subView in _searchBar.subviews){
    if([subView isKindOfClass:UITextField.class]){
        UITextField *searchField = (UITextField*)subView;
        searchField.textColor = [UIColor darkGrayColor];
        UIImage *image = [UIImage imageNamed: @"loop.png"];
        UIImageView *iView = [[UIImageView alloc] initWithImage:image];
        searchField.leftView = iView;
    }
}

それは完全に機能します。しかし、Apple がアプリを拒否するのではないかと心配しています。これが非公開 API ではないことはわかっていますが、完全に公開されているわけでもありません。

そのような種類のコードを含むアプリが App Store にある人はいますか?

4

2 に答える 2

4

プライベート API を呼び出していないので、このコードが AppStore の検証に合格することはほぼ確実です。あなたのコードは将来を保証するものではないことに注意してください。Apple が内部UISearchBar実装を変更し、コードが機能しなくなる可能性があります。最も信頼できる解決策はUITextField、独自のコードをサブクラス化してロールアウトすることです。

そうは言っても、これが問題になる可能性はほとんどなく、コードが機能することは間違いありません。

于 2012-10-31T10:57:50.310 に答える
1

ほとんどの場合、Apple では検出されません。(UIControl を変更するために同様の方法を使用するアプリが多すぎます)。ただし、このコードを実行する前に iOS のバージョンを確認する必要があります。Apple 開発チームは、新しい iOS バージョンでこれらの内部構造を変更する可能性があります。

if (ios > 5.0 && ios < 6.0 )
     // your modifies here
else 
     // ....
于 2012-10-31T10:57:37.810 に答える