にフィルタボタンを追加します。私はすでにUIButton
とsearchbar
をUIView
に追加しようとしましたが、これを私のUITableView tableView.tableHeaderView
と設定しました。tableView.tableHeaderView
がコントローラを終了するときにだけに戻ってくるので、これは機能しません。ここでは、私はそれを見たいの例です:は私が<code>UISearchController</code>内<code>searchBar</code>の隣にある「フィルタ」または「並べ替え」ボタンを追加したいUISearchController
答えて
私は検索コントローラを失うだろう、それはあなたが提供する必要がある追加のビュー/ VC複雑さ/コードを追加する任意の機能を提供しません複製。それは、データ・ソースを持っているので
既存のテーブルビューはすでに、あなたが必要なすべてを持っています。それは配列かFRCのどちらかです。それは、アレイのなら、あなたはあなたのフィルタ処理内容で配列の内容を置き換えることができ、そしてそれはFRCだ場合は、述語を変更することができます。
注:アレイの場合に、最初に同じ配列への参照である2つの配列参照、すべてのフィルタリングされていないアイテムを保持する配列を指し1及び別の持っている - 第二の基準は、テーブルビューを移入するために使用されます。次に、フィルタリングするときに、フィルタされた項目だけを含む新しい配列を作成し、2番目の参照をその点でポイントします。
の代わりに使用すると、検索バーのデリゲートメソッドを実装し、フィルタリングをトリガーし、リセットするためにそれを使用して、検索コントローラのデリゲートメソッドを実装します。
は、今あなたが、テーブルビューを切り替えていないので、あなただけの1台のテレビと1つのヘッダビューを持っている検索コントローラー脱却しました。ヘッダービューを変更する必要はなく、すべてが機能します。
私が探しているものを理解しているわけではありません。私はテーブルビューをフィルタリングする方法を知りたいのではなく、フィルタを取得する方法を教えてください。検索バーのすぐ隣にあるボタン(検索コントローラでは理想的) – smnk
だからこそ、検索コントローラの紛失について尋ねました。あなたが持っている問題は、検索コントローラが別のビューを提示するため、ヘッダーが異なるように構成されていることです。他のビューに別のヘッダーを設定するだけで済みます。私は検索コントローラがほんのわずかな利益のために複雑さを加えていることがわかりました。ビューが1つだけの場合は、ヘッダーが1つあり、フォーカス管理も簡単です。 – Wain
私は検索バーをカスタマイズする方法の多くのを試してみましたが、何もフルフィル
let mysearchController = UISearchController(searchResultsController: nil)
mysearchController.searchBar.showsCancelButton = true
mysearchController.searchBar.barStyle = UIBarStyle.Black
for var subView1 in mysearchController.searchBar.subviews{
for var subView2 in subView1.subviews{
if subView2 .isKindOfClass(UIButton){
let customizedCancelButton:UIButton = subView2 as! UIButton
customizedCancelButton.enabled = true
customizedCancelButton.setTitle("", forState: UIControlState.Normal)
let image1 = UIImage(named: "Sort")
customizedCancelButton.setBackgroundImage(image1, forState: UIControlState.Normal)
customizedCancelButton.addTarget(self, action: "sort", forControlEvents: UIControlEvents.TouchUpInside)
}
}
}
コードの上、要件を理解する非常に簡単ですへの道を見つけた時、最後の私を助けてくれません。
func sort(){
print("sort button fired!!!")
}
代わりにUISearchBarをカスタマイズして、物事を複雑に、あなたは検索バーの横に、独自のボタンを追加することによって、それをシンプルに保つことができます。
設定しませんショーは
追加ショーは、ストーリーボードに検索バーのボタンオプションをキャンセル
self.searchBar.showsCancelButton = true
OR
チェックを外しを使用して検索バー用のボタンオプションをキャンセルあなたの自分のボタンb
そして、以下のようにesideの検索バーには、それに応じてボタンにIBactionを追加し、その中にあなたの行動を実行します。
はまた、理想的な場合には、テーブルビューのヘッダにこのビューを置くことが推奨ではありません。 テーブルビューよりも上にある方がAppleよりも優れている方が良いでしょう。
私は数行のコードで検索フィルタを作成することができます。私はそれが助けて欲しい
*ブックマークボタンを選択してフィルタアイコンを適用しました。私はすでにカスタムアクションのためにキャンセルボタンを使用しているからです。
最初に、ブックマークボタンのクリック操作を処理するsearchBarを委譲しました。 次に、以下のようにプロパティを設定する必要があります。カスタムポジションを与えたい場合(デフォルトポジションは右側)、setPositionAdjustmentを設定する必要があります。
searchController.searchBar.delegate = self
searchController.searchBar.showsBookmarkButton = true
searchController.searchBar.setImage(UIImage(named: "Sort.png"), for: .bookmark, state: .normal)
// MARK: You may change position of bookmark button.
//searchController.searchBar.setPositionAdjustment(UIOffset(horizontal: 0, vertical: 0), for: .bookmark)
次に、VC内のsearchBarBookmarkButtonClicked関数をオーバーライドします。このメソッド内でクリックイベントを処理できます。
func searchBarBookmarkButtonClicked(_ searchBar: UISearchBar) { //showAlert, presentVC or whatever you want here }
あなたが検索コントローラがアクティブな状態でブックマークボタンを非表示にする場合も、あなたはupdateSearchResultsメソッド内の制御を適用する必要があります。
if searchController.isActive {
searchController.searchBar.showsBookmarkButton = false
} else {
searchController.searchBar.showsBookmarkButton = true
}
すばらしい解決策!ありがとう。 – Alessign
- 1. あなたは私が私のCollectionViewSource</p> <p>内の単一アイテムをフィルタしたいCollectionViewSource
- 2. Wpfフィルタと並べ替えを有効にしたリストビューのパフォーマンス
- 3. どのように並べ替えまたは並べ替えをJavaランタイムの並べ替えを使用して(近接に基づいて)
- 4. 私はルートに追加した<code>WebApiConfig</code>で
- 5. テーブルビューのアイテムを動的に追加して並べ替える
- 6. Magento 1.9で新しい「並べ替え」を追加する
- 7. 移動ボタンIを、私はブレンド2015</strong> VS <strong>ためのボタンを追加しましたWindowsの<strong>モバイルアプリケーション</strong>を開発し、ない<strong>ボタンページのために私のボタンにバインドする方法</strong>オプションに移動がありませんしています
- 8. Riakでデータを並べ替え/並べ替える方法は?
- 9. ObservableCollectionにバインドされたDataGridの並べ替えの実装<Dictionary>>
- 10. <Object>のリストをVBとLINQで並べ替える
- 11. TableViewのナビゲーションバーに並べ替え機能を追加する
- 12. jQuery UIクローニングして新しい並べ替え可能なリストを追加した後で、並べ替えが更新されない
- 13. Django:datetimeでコメントを並べ替えたい
- 14. サブクエリ内で並べ替え
- 15. ボタンを追加しますか?</p> <p><a href="https://github.com/markushi/android-circlebutton" rel="nofollow">https://github.com/markushi/android-circlebutton</a></p> <p>をそして私は、私のボタンにテキストを追加したい:
- 16. Pythonは並べ替えられたリストを並べ替え、最も高い値が中間にあるようにします
- 17. 並べ替えで並べ替え
- 18. WebGridを使用した並べ替え
- 19. PHPを使用した並べ替え
- 20. 要素が追加された後の優先度ブロックキューの並べ替え
- 21. </p> <p>は私がボタンに含まれるていた
- 22. 安定した並べ替えを使用してDataGridを並べ替える方法は?
- 23. は私が</p> <pre><code>git add . </code></pre> <p>を実行し、今私はgitの追加戻したい
- 24. TreeMapを並べ替える方法<String、Integer>?
- 25. </p>その子アクティビティのボタンをクリックする <p>、</p> <p>親アクティビティがあるべき、私は図書館内にあるボタン、と子供の活動をしました私のプロジェクトでは、実行時
- 26. RadListBox内のアイテムを並べ替える
- 27. フィールド順に並べ替えたmysqlの
- 28. iPhone:UITableViewの並べ替えの行ボタン
- 29. Laravel 4.2並べ替えの関係による並べ替え
- 30. VBA - ドラッグ&ドロップによる並べ替えの並べ替え
あなたが検索コントローラを使用している特別な理由があるのですか?それを使用せず、テーブルビューを直接フィルタリングすることはできますか? – Wain
理由は純粋に光学的です。だから私は何でもうまくいくだろう – smnk
私はより具体的にする必要があります、あなたはすでにテーブルビューを持って、それをフィルタリングするだけで幸せですか、検索結果を提示するために/検索コントローラのオーバーレイ機能が欲しいですか? – Wain