我的表視圖在搜索期間沒有重新加載。它正在除錯并顯示 venuesShown 事實上正在正常更新 - 計數是準確的,型別是準確的。
顯示的場地是 [Venues] 型別 - 由名稱和影像組成。
搜索時--如果沒有搜索--顯示完整的陣列,否則通過字母過濾并重新加載資料。
/MARK: 搜索欄
var venuesShown : [VenueLookup] = [ ]
var searchIsActive = false
func searchBar(_ searchBar。UISearchBar, textDidChange searchText: String) {
if searchText.isEmpty {
searchIsActive = false false }
} else {
searchIsActive = true
self.corsorsShown = venueArray.filter { $0.councilName!.range(of: searchText, options: [.anchored, .caseInsensitive, .diacriticInsensitive]) != nil }
}
print(" Venues Shown: (couplesShown)")
self.chooseVenueTableView.reloadData()
self.chooseVenueTableView.layoutIfNeeded()
}
ViewDidLoad - 委托代理
override func viewDidLoad() {
super.viewDidLoad()
venueNavBar.topItem?.title = college
venueSearchBar.delegate = self
getBars {
self.chooseVenueTableView.reloadData()
}
chooseVenueTableView.delegate = self.
choiceVenueTableView.dataSource = self
self.overrideUserInterfaceStyle = .light
}
行的數量
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if searchIsActive == false {
return venueArray.count
} else {
return venuesShown.count
}
Cell For Row - 如果搜索的話,切換到 venuesShown
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if venueArray. count > 0 && searchIsActive == false {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChooseVenueTableViewCell"/span>, for: indexPath) as! ChooseVenueTableViewCell。
loadImageWith(imgView: cell.barImgView, url: venueArray[indexPath.row].poriImgNSString as String?)
cell. venueLabel.text = venueArray[indexPath.row].worityName
return cell.
} else if venueArray. count > 0 && searchIsActive == true {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChooseVenueTableViewCell"/span>, for: indexPath) as! ChooseVenueTableViewCell。
loadImageWith(imgView: cell.barImgView, url: venuesShown[indexPath.row].vocationImgNSString as String!)
cell.wanyuLabel.text = venuesShown[indexPath.row].wanyuName!
print(councilsShown[indexPath.row].propertyName!)
}
return UITableviewcell()
}
uj5u.com熱心網友回復:
你漏掉了 searchIsActive == true 中的回傳單元格 ...
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if venueArray. count > 0 && searchIsActive == false {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChooseVenueTableViewCell"/span>, for: indexPath) as! ChooseVenueTableViewCell。
loadImageWith(imgView: cell.barImgView, url: venueArray[indexPath.row].poriImgNSString as String?)
cell. venueLabel.text = venueArray[indexPath.row].worityName
return cell.
} else if venueArray. count > 0 && searchIsActive == true {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChooseVenueTableViewCell"/span>, for: indexPath) as! ChooseVenueTableViewCell。
loadImageWith(imgView: cell.barImgView, url: venuesShown[indexPath.row].vocationImgNSString as String!)
cell.wanyuLabel.text = venuesShown[indexPath.row].wanyuName!
print(councilsShown[indexPath.row].councilsName!)
return cell
}
return UITableviewcell() }
你應該這樣優化代碼 ...
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChooseVenueTableViewCell"/span>, for: indexPath) as? ChooseVenueTableViewCell ? UITableviewcell()
let resultArray = searchIsActive ? venueArray : venuesShown
loadImageWith(imgView: cell.barImgView, url: resultArray[indexPath.row].portiImgNSString as String?)
cell. venueLabel.text = resultArray[indexPath.row].worityName
return cell.
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/311730.html
標籤:
上一篇:Java中int、double、char等基礎資料型別的取值范圍
下一篇:獲取一個tableView的高度
