問題タブ [uisearchdisplaycontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone-sdk-3.0 - UITableViewのUISearchBar
アーティスト向けのiPodアプリに似たテーブルビューの動作を模倣しようとしています。これは、右側にセクションインデックスがあり、上部に検索バーがありますが、ビューが表示されると最初は非表示になっているセクションテーブルビューです。
私はsdk3.1.2とIBを使用しているので、単にaUISearchDisplayController
をNIBにドラッグします。これにより、検索のためにすべてが接続されます。UISearchBar
問題は、の最初のセクションにを追加しているために始まります。UITableView
正しく理解している場合は、セクションインデックスの検索アイコンに直接タッチして検索バーにジャンプできるようにするために、これを行う必要がありますか?テーブルビューが表示されると、検索バーが表示されますが、サイズが変更され、上部のセクションインデックスの後ろに白いブロックが表示されます。UISearchBar
興味深いことに、InterfaceBuilderに表示されるものとは異なる'サラウンドの色は使用されません。
小さなナビゲーションバーとをに追加して、これをテーブルビューセルに追加するためのヒントを見つけましUISearchBar
たUIView
。これは機能しますが、ナビゲーションバーの背景の色は、通常予想される色(灰色)であり、上記のような異なる色ではありません。さらに興味深いことに、検索バーをタップして検索を開始し、[キャンセル]をタップすると、すべてが修正されます。検索バーが同じ場合のテーブルビューセル全体の背景は同じですか?
iphone - UISearchDisplayController を使用すると「フルスクリーン」にスムーズに移行
私が探しているものを説明するために、例を挙げます: 連絡先アプリでは、テーブル ビューの最初の行にある [検索] フィールドをクリックすると、画面全体 (ステータス バーを除く) をスムーズに占有します。ナビゲーション コントローラーのタイトル バー。
編集:これは、TabBarController内にあるNavigationController内にあるUITableView内にあるUISearchDisplayControllerに関連していると確信していることにも気付きました。問題は、検索表示がナビゲーションコントローラーではなく、テーブルビューのサイズのみを占めることです。
UIView アニメーションを使用し、ナビゲーション コントローラーのフレーム全体のサイズを変更して、表示されている画面のビューの上で開始することで、プログラムでこれを模倣しました。下記参照:
これは問題なく機能し、仕事は完了しますが、ハックのように感じます。検索表示コントローラーでこれを行う簡単な方法はありますか? 今後、ディスプレイのサイズが変わったり、Apple タブレットが出てきたりしたら困るハックだと思います。ナビゲーションコントローラーのタイトルバーをスムーズに取り上げます。
iphone - UINavigationBarが非表示のUISearchBar
テーブルの上部に検索バーがあり、非表示のナビゲーションバーがあります。UISearchBarとともに、UISearchDisplayControllerを使用します。UISearchDisplayControllerには、ナビゲーションバーを前面に表示する可能性があります。そのため、検索バーのキャンセルボタンをタップすると、ナビゲーションバーが下に飛びます。この可能性を却下して、ナビゲーションバーが常に非表示になるようにするにはどうすればよいですか?
ありがとう
iphone - UISearchDisplayControllerのsearchResultsTableViewを制御する方法は?
によって使用されるテーブルビューをどのように制御するのか疑問に思いますUISearchDisplayController
。は読み取り専用のプロパティであるため、のsearchResultsTableView
プロパティを上書きすることはできません。UISearchDisplayController
searchResultsTableView
カスタムでオーバーレイしようとしましたUITableView
。これは1回だけ機能しますが、2回目の検索を試みるとすぐに、本物searchResultsTableView
が再びトップになります。(つまり、にテキストを入力するsearchBar
と、カスタムテーブルビューが一番上に表示され、検索結果が表示されます。その後、キャンセルボタンを押します。これを繰り返すと、カスタムテーブルは表示されずsearchResultTableView
、 UISearchDisplayControllerが一番上になります)。
もちろん、なしで試すこともできますがUISearchDisplayController
、このクラスの利点を頼りに、をカスタマイズしたいだけですtableView
。
iphone - NSFetchedResultsControllerおよびUISearchDisplayControllerの使用方法
CoreDataを使用してiPhoneアプリを作成しています。
まず、NSFetchedResultsControllerとUISearchDisplayControllerを一緒に使用して結果をフェッチすることは理にかなっていますか?他に何かお勧めしますか?
NSFetchedResultControllerとUISearchDisplayControllerを組み合わせてかなり長い間試してきました。メソッドのNSPredicateをUIViewControllerのNSFetchedResultControllerに設定することを考えていました(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption
。しかし、これはうまく機能していません。
それで、私の問題の解決策を実装する方法について何か考えがありますか?回答や優れたチュートリアルへのリンクを投稿していただき、ありがとうございます。
編集
これが私のコードです。(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
UISearchDisplayDelegateメソッドは、NSFetchedResultControllerで述語を設定する必要があるメソッドを呼び出します。NSFetchedResultControllerのコードも追加しました。
iphone - テーブルビューの背景画像を設定すると、テーブルビューのセルがほとんど見えないのはなぜですか?
背景画像をロードするときに、searchResultsTableView セルを完全に表示することができません。セルは非常に弱々しく見え、選択した場合でも背景のイメージ ビューから目立ちません。助言がありますか?
このデリゲート メソッド内で (searchResultsTableView で) 使用するために新しい UITableViewCell を割り当てる以外に、私は何もしていません。
訂正ありがとうございます!
(私はiPhoneシミュレーター3.1.2を使用しています)
iphone - UISearchDisplayController の選択後に UINavigationController の navigationBar を非表示にする
内にネストされた を使用したUISearchDisplayController
セットアップがあります。セルの選択が行われると、メソッドがトリガーされ、新しいビューが親ナビゲーション コントローラーにプッシュされます。この新しいビューでは、エントリ時にナビゲーション バーが非表示になっている必要があります。UITableViewController
UINavigationController
UITableView's
didSelectRowAtIndexPath
メソッドでこの行を使用didSelectRowAtIndexPath
して、ナビゲーション バーを非表示にします。これは、検索コントローラーを使用せずに行が選択されている場合は正常に機能しますが、検索結果を選択する場合はオーバーライドされます。UISearchDisplayController
行が選択された後、navigationBar を非表示に戻す権利があるようです。
setNavigationBarHidden
呼び出しをターゲット ビューのメソッドに移動するとviewWillAppear
、結果は同様になります。hide 呼び出しを に配置することで機能させることができますがviewDidAppear
、これは非常にぎこちないトランジション効果になり、ぴくぴくして場違いに感じます。新しいビューが画面にスライドする前に、ナビゲーションバーを既に非表示にしたいと思います。
ナビゲーションバーの非表示がどこで発生しているか、および/またはこの動作をオーバーライドできる方法を知っている人はいますか?