我看到這裏問類似的問題,但沒有一個是對我很有幫助明確。表視圖ReloadData功能不觸發的cellForRowAtIndexPath斯威夫特
我在我的表格視圖中實現了一個搜索欄,它看起來像一切都很好,沒有任何錯誤。我仔細查看了代碼,發現了一些錯誤。於是我開始調試。
這裏是我的查詢功能:
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
}
正如你可以看到我已經把print語句進行調試,並正在打印什麼。這是因爲函數沒有被觸發,或者因爲我的代碼有問題?
如果是的話,任何人都可以找到它?我所知道的肯定是最多直到reloadData()
函數調用一切都可以正常使用。
您正在重新聲明你的'變種filtered'只是更新現有的'filtered' – 0yeoj
哈哈輝煌!發現得好! –