Поиск в UITableView с использованием UISearchBar Swift 5 - PullRequest
0 голосов
/ 05 мая 2020

** Примечание: два разных массива TopicTitle и TopicDes c**

Я хочу фильтровать данные по TopicTitle, и он работает нормально

 func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    filteredTitleArray = searchText.isEmpty ? titleArray : titleArray.filter { title -> Bool in
        return title.contains(searchText)
    }
    tableView.reloadData()
}

Проблема в том, что я получаю отфильтрованный заголовок темы, но описание темы не отображается в соответствии с отфильтрованной ячейкой enter image description here

1 Ответ

1 голос
/ 05 мая 2020

Не используйте несколько массивов, используйте структуру

struct Topic {
    let title, desc : String
}

и объявите массивы (источника данных)

var topicArray = [Topic]()
var filteredArray = [Topic]()

Затем отфильтруйте

filteredArray = searchText.isEmpty ? topicArray : topicArray.filter { topic -> Bool in
    return topic.title.range(of: searchText, options: .caseInsensitive) != nil
}

Преимущество синтаксиса range(of заключается в возможности поиска без учета регистра.

...