検索アプリ完成系
UISearchBarとTableViewの設置
ViewControllerにUISearchBarを設置し、コードに接続します。
今回は仮で以下の配列を宣言し、TableViewのCellに表示させます。
var arr: [String] = ["AABBCC", "BBB", "CACA", "BABA", "AAA", "CCCC", "ABOABO", "DACB", "BBAB", "PPAP", "KOKOK", "UIN", "TITI", "POI", "ADVR"]
UISearchBarDelegateの継承
ViewControllerでUISearchBarのDelegateを継承し、以下の関数を呼び出します。
func searchBarSearchButtonClicked(_ searchBar: UISearchBar)
この関数の中で、入力された文字列を含む物を配列から探す処理を記述します。
filter・containsを使用してフィルターをかける
UISearchBarのDelegate関数の中を、以下のように記述します。
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
var filterdArr: [String] = []
if let text = searchBar.text {
if text == "" {
mainView.updateView(arr: arr)
} else {
filterdArr = arr.filter { (str) -> Bool in
return str.contains(text)
}
mainView.updateView(arr: filterdArr)
}
}
}
SearchBarに入力されたテキストが空だった場合は全ての要素をCellに表示されるようにしています。
テキストが入力されていた場合、その文字列を含む要素をcontainsを使って検索し
ヒットした要素を新しい配列(filterdArr)に入れてそれを表示させます。
このfilterdArrを、TableViewのるViewに渡してそれぞれの要素をCellに表示させています。
ABOUT ME
株式会社Playgroundのサービス
- 無料・簡単・片手でホームページを作成できる自社サービス Rakwi
- Web制作とアプリ開発を学べるオンラインプログラミング講座 Upstairs
- 開発,DX推進支援サービス スタートアッププラン