大佬教程收集整理的这篇文章主要介绍了数组 – 将项添加到对象中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var searchCompleter = MKLocalSearchCompleter() var searchResults = [MKLocalSearchCompletion]() @IBOutlet weak var searchBar: UISearchBar! override func viewDidLoad() { searchCompleter.delegate = self searchBar.delegate = self } extension ViewController: MKLocalSearchCompleterDelegate { func completerDidupdateResults(_ completer: MKLocalSearchCompleter) { searchResults = completer.results searchResultsTableView.reloadData() } func completer(_ completer: MKLocalSearchCompleter,didFailWithError error: Error) { // handle error } } extension ViewController: UITableViewDatasource { func numberOfSections(in tableView: UITableView) -> Int { return 1 } func tableView(_ tableView: UITableView,numberOfRowsInSection section: int) -> Int { return searchResults.count } func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell { let searchResult = searchResults[indexPath.row] let cell = UITableViewCell(style: .subtitle,reusEIDentifier: nil) cell.textLabel?.attributedText = highlightedText(searchResult.title,inRanges: searchResult.titleHighlightRanges,size: 17.0) cell.detailTextLabel?.attributedText = highlightedText(searchResult.subtitle,inRanges: searchResult.subtitleHighlightRanges,size: 12.0) return cell } } extension ViewController: UISearchBarDelegate { func searchBar(_ searchBar: UISearchBar,textDidChange searchText: String) { searchCompleter.queryFragment = searchText } func searchBarShouldEndEdiTing(_ searchBar: UISearchBar) -> Bool { self.searchBar.endEdiTing(true) searchBar.resignFirstResponder() return true } }
1)我建议你创建一个自己的枚举
class CustomSearchResult { let title: String ... } enum SearchResultType { case localSearchResult(result: MKLocalSearchCompletion) case customResult(result: CustomSearchResult) }
2)你有你的结果数组:
var searchResults = [SearchResultType]()
3)在completerDidupdateResults中,您可以将个人结果和MapKit结果添加到searchResults数组中:
searchResults = completer.results.map { SearchResultType.localSearchResult(result: $0) } // Add here custom results searchResults.append(SearchResultType.customResult(result: CustomSearchResult(title: "test")))
4)..并且在cellForRowATindexPath中,您可以决定是否有自定义或MapKit结果:
let searchResult = searchResults[indexPath.row] switch searchResult { case .customResult(let result): cell.textLabel.text = result.title case .localSearchResult(let result): cell.textLabel.text = result.title }
以上是大佬教程为你收集整理的数组 – 将项添加到对象中全部内容,希望文章能够帮你解决数组 – 将项添加到对象中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。