ディスプレイ コントローラーを使用して UISearch バーをカスタマイズしようとしていて、検索コントローラーとディスプレイ コントローラーの特定の側面をカスタマイズする際に問題が発生しました。私はストーリーボードを使用しており、IOS 6 の最新バージョンで開発しています。
最初の問題は、検索テキスト ビューを最初にクリックしたときに表示される濃い灰色のグラデーション オーバーレイを削除することです。デリゲートを使用しようとしましたsearchDisplayController:willShowSearchResultsTableView:
が、グラデーション オーバーレイとして使用されているビューまたはそれを無効にするプロパティを見つけることができません。このビューを削除するにはどうすればよいですか?
2 つ目は、検索ビューをクリックしたときにトリガーされる最初のアニメーションに問題があることです。アニメーションは、UINavigationBar の上に検索バーを拡張して、結果を表示するためのより大きなスペースを確保することになっています。これは発生せず、検索バーは UINavigationBar の下に留まり、アニメーションは正しく表示されません。displaysSearchBarInNavigationBar
およびプロパティを設定しようとしましたnavigationItem
が、それらにアクセスまたは設定する方法が見つかりませんでした。これは、ストーリー ボードで自動レイアウトを使用しているという事実の問題でしょうか? UISearchBar アニメーションに関連する多くの問題は、.xib またはストーリーボード ファイルで使用されている自動レイアウトが原因であることに気付きました。ナビゲーションバーの上に正しく配置するにはどうすればよいですか?
私が抱えている 3 番目の問題は、searchBarTextDidBeginEditing:(UISearchBar *)searchBar
デリゲート メソッドをオーバーライドすることです。完全なカスタマイズを可能にするために、UISearchBar をサブクラス化しました。searchBarTextDidBeginEditing:
カスタム UISearchBar サブクラス内でデリゲート メソッドのデフォルト定義を提供する方法はありますか。ユーザーが検索バーをクリックしたときに UITextView で特定のスタイルのテキストを提供したいのですが、検索バーを使用するすべてのビュー コントローラーでこのメソッドを再定義する必要はありません。これは可能ですか?
これらの問題の解決にご協力いただきありがとうございます。