от
Я создал TableView с пользовательских ячеек и IM в настоящее время пытается добавить строку поиска.
import UIKit

class ViewController: UIViewController, UITableViewDataSource {

var SVGdata = [SVG]()

override func viewDidLoad() {
    super.viewDidLoad()

}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    createSVGdata()
}

// Create movies data
func createSVGdata() {
    SVGdata.append(SVG(SVGArtikel: "Art. 1", SVGGesetzestext: "Das darfst du nicht tun"))
    SVGdata.append(SVG(SVGArtikel: "Art. 2", SVGGesetzestext: "Und das erst recht nicht"))

}

// TableView
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) 

}

Есть тысячи видео, как искать в простом массиве. Но не для моего решения.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

2 Ответы

0 голосов
от
Я знаю два способа добавить строку поиска, когда у вас есть TableView для, поэтому я рекомендую вам сначала решить, какие костюмы реализации лучше для вашего приложения: Во-первых, если у вас есть UINavigationController, вы можете использовать собственную реализацию поисковую форму, которая будет отображаться в панели навигации. Я имею в виду, сначала нужно UINavitationController добавлен в ваш контроллер представления, программно или с помощью раскадровки. Затем необходимо создать UISearchController и связанные с UINavigationController. Наконец, прислушаться к событиям через UISearchController делегата происходят в поисках навигационной панели, так что вы можете обновить вам вид. https://www.raywenderlich.com/472-uisearchcontroller-tutorial-getting-started Второй способ является вирусом, который связан с TableView Для через его заголовок, прочитал несколько самоучителей, пока вы делаете это. https://www.ioscreator.com/tutorials/add-search-table-view-ios-tutorial
0 голосов
от
Вы можете сделать это с помощью UISearchBar. Добавить UISearchBar в истории совета на том же файле ViewController, где ваш TableView для (добавить строку поиска в верхней части представления таблицы, как iOS. Контакты приложение), а затем добавить ссылку, как показано ниже код:
@IBOutlet weak var searchBar: UISearchBar!
Затем в метод viewDidLoad добавить делегат :
self.searchBar.delegate = self
У меня два целое без знака функции, filteredData. в данные я сохранил все данные из таблицы(не менять его в любом месте) и filteredData использовали, чтобы получить отфильтрованный результат. Так, после заполнения данных в програмное , я сделал из (viewWillAppear):
filteredData = allData
Таким образом , все делегаты TableView, в источниках данных используется filteredData. Затем сделайте расширение файле ViewController (делая расширение не является обязательным ), чтобы соответствовать UISearchBarDelegate : Как вы используете SVGdata( я использовал filteredData) для TableView для, после фильтрации, вы должны поставить все отфильтрованные данные в SVGdata до перезагрузки стол.
extension YourViewController: UISearchBarDelegate{
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    // searchText will contain user input
    // in allData I have kept all data of the table
    // filteredData used to get the filtered result
        if (searchText == ""){
            filteredData = allData
        }
        else{
            filteredData = []
        // you can do any kind of filtering here based on user input
            filteredData = allData.filter{
                $0.cName.lowercased().contains(searchText.lowercased())
            }   
        }
    // lastly you need to update tableView using filteredData so that the filtered rows are only shown
    //As you use SVGdata for tableView, after filtering you have to put all filtered data into SVGdata before reloading the table.
        self.tableView.reloadData()
    }
}
...