gpt4 book ai didi

ios - 使用 tableview 设置 uisearchdisplaycontroller 时出现问题 - Swift

转载 作者:行者123 更新时间:2023-11-30 13:24:38 25 4
gpt4 key购买 nike

我正在尝试为我的 TableView 设置 searchdisplaycontroller,并且在为 TableView 本身声明我的 iboutlet 时遇到一些问题。附件是屏幕截图以及我的代码。非常感谢任何见解。

Code Errors Img

import UIKit

class DataTableExercisesTableViewController: UITableViewController, UISearchBarDelegate {

var exercises = ["Abs", "Arms", "Back", "Chest", "Legs", "Shoulders", "Triceps"]
var searchActive : Bool = false

@IBOutlet var tableView: UITableView!
@IBOutlet weak var searchBar: UISearchBar!
var filtered:[String] = []

override func viewDidLoad() {
super.viewDidLoad()
tableView.tableFooterView = UIView()

tableView.delegate = self
tableView.dataSource = self
searchBar.delegate = self

}



// MARK: - Table view data source



override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if(searchActive) {
return filtered.count
}
return exercises.count;
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell;
if(searchActive){
cell.textLabel?.text = filtered[indexPath.row]
} else {
cell.textLabel?.text = exercises[indexPath.row];
}

return cell;
}




override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {



}


func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
searchActive = true;
}

func searchBarTextDidEndEditing(searchBar: UISearchBar) {
searchActive = false;
}

func searchBarCancelButtonClicked(searchBar: UISearchBar) {
searchActive = false;
}

func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchActive = false;
}

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {

filtered = exercises.filter({ (text) -> Bool in
let tmp: NSString = text
let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
return range.location != NSNotFound
})
if(filtered.count == 0){
searchActive = false;
} else {
searchActive = true;
}
self.tableView.reloadData()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

最佳答案

您是否尝试过完全删除 IBoutlet? (来自 Storyboard连接和代码中)。我认为这会解决你的问题。

关于ios - 使用 tableview 设置 uisearchdisplaycontroller 时出现问题 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37368679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com