gpt4 book ai didi

ios - TableView ReloadData 函数不触发 cellForRowAtIndexPath Swift

转载 作者:行者123 更新时间:2023-11-28 07:05:20 25 4
gpt4 key购买 nike

我在这里看到过类似的问题,但没有一个对我特别有帮助。

我在我的 TableView 中实现了一个搜索栏,看起来一切正常,没有任何错误。我仔细查看了代码几次,没有发现任何错误。于是开始调试。

这是我的搜索功能:

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

var filtered:[Room] = filterz(rooms, txt: searchText)

//println(filtered.count)

if(filtered.count == 0){
searchActive = false
} else {
searchActive = true
}

self.tView.reloadData()
}

我可以看到它运行良好,因为它正在打印出正确的计数。但是我不确定 reloadData 函数。我认为它会触发此处的 cellForRowAtIndexPath 函数:

func  tableView(tableView:UITableView,cellForRowAtIndexPathindexPath:NSIndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCellWithIdentifier("RoomCell", forIndexPath: indexPath) as! UITableViewCell

var room:Room = rooms[indexPath.row]

if(searchActive){
room = filtered[indexPath.row]
}

if let nameLabel = cell.viewWithTag(200) as? UILabel{

nameLabel.text = room.name
println(room.name)

}

if let sizeLabel = cell.viewWithTag(201) as? UILabel{

sizeLabel.text = room.size
println(room.size)

}

if let vacLabel = cell.viewWithTag(202) as? UILabel{

vacLabel.text = room.vacant
println(room.vacant)

}

if let taskIm = cell.viewWithTag(203) as? UIImageView{

taskIm.image = UIImage(named: room.imagename)
}

return cell
}

如您所见,我已经输入了要调试的打印语句,但它没有打印任何内容。是因为函数没有触发还是我的代码有问题?

如果是这样,有人能找到它吗?我所知道的是,直到调用 reloadData() 函数,一切都运行良好。

最佳答案

您正在重新声明您的 var filtered 只是更新您的 cellForRowAtIndexPathindexPath 中使用的现有 filtered

关于ios - TableView ReloadData 函数不触发 cellForRowAtIndexPath Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30808810/

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