xcode,索引路径,搜索栏

Posted

技术标签:

【中文标题】xcode,索引路径,搜索栏【英文标题】:xcode , indexPath, SearchBar 【发布时间】:2019-01-16 18:44:18 【问题描述】:

我的 NavigationController 和带有 indexPath 的搜索栏有问题。我有一个表格视图,其中有一个项目列表。每行的项目是 1. image 和 1. image description(label)。

现在我尝试为列表粘贴一个搜索栏。它工作得很好但是当我在搜索时列表的第二项 (AssaultGren.),该表向我显示了错误的 (第一个) 图像。这是因为当我在搜索第二个项目时是 searchView 中的第一个项目.....现在我不知道如何修复它。也许有人可以帮助我?谢谢大家

https://imgur.com/a/6Bgri6E“普通视图”

https://imgur.com/a/yLgIETp“搜索视图”

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: 
    IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: 
    indexPath) as? WehrmachtUnitsCellTableViewCell


    if searching
        cell?.UnitName?.text = searchUnits[indexPath.row]
     else 
        cell?.UnitName.text = units[indexPath.row]
        cell?.UnitBild.image = UIImage(named : units[indexPath.row])
    

    return cell!

【问题讨论】:

是否有理由在不搜索时设置文本和图像,而在搜索时只设置文本?您需要分配图像,例如UIImage(named : searchUnits[indexPath.row]) 哇,谢谢伙计们..它成功了 【参考方案1】:

我想你忘了设置正确的图像,以防你正在搜索。由于 ios 正在重用表格视图单元格,因此它保留了之前设置的图像,因此您必须再次设置它。 试试这个:

if searching
        cell?.UnitName?.text = searchUnits[indexPath.row]
        cell?.UnitBild.image = UIImage(named : searchUnits[indexPath.row])
     else 
        cell?.UnitName.text = units[indexPath.row]
        cell?.UnitBild.image = UIImage(named : units[indexPath.row])
    

【讨论】:

谢谢,但它不起作用。问题是,我首先用 indexPath 修复了图像。第一行,第一张图片,第二行第二张图片等等....所以当我搜索时,第一行显示第五个元素的图像(当我搜索第五个元素时) @Phil 很高兴听到这个消息!那么请你把答案标记为正确的吗?谢谢!

以上是关于xcode,索引路径,搜索栏的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 中的搜索栏

搜索栏不显示搜索结果

UISearchbar 并在查看控制器 xcode swift 中传递数据

Azure Blob 存储:是不是可以使用特定虚拟文件夹(路径)内的 Blob 索引标签进行搜索?

代码转换 swift 2 --> 3 导致索引路径处的二进制运算符错误

我收到错误:致命错误:索引超出范围