两个带有搜索栏的自定义单元格

Posted

技术标签:

【中文标题】两个带有搜索栏的自定义单元格【英文标题】:Two custom cells with search bar 【发布时间】:2017-09-18 09:14:55 【问题描述】:

我试图在我的 UIView 控制器中有两个自定义单元格和搜索栏。起初我可以做一个单元格和搜索栏,它很完美,然后我添加了另一个单元格,然后一切都变得丑陋了。

这是我的自定义单元格的想法 我从我的服务器以 JSON 格式获取数据。很多店铺,有的有设计,有的没有设计。如果一家商店有设计,我将设计保存在一个变量中作为字符串withDesign

                let shop_id = subJson["id"].stringValue
                var info = Shops(shopname: shopName, Logo: logoString, family_id: familiy_id , design : designImage )
                 self.withDesign = self.shops.filter  $0.design != "" 
                 self.withOut =  self.shops.filter  $0.design == "" 
                 self.allShops = self.NofilteredArr + self.filteredArr
                print(self.filteredArr)

第一个单元格称为design,第二个单元格称为Cell

我尝试了多种方法,但我失败了,因为这是我第一次处理两个细胞。

我想做的是所有商店都将列在单元格中,如果有一家商店有设计,那么如果没有设计,那么就用设计制作单元格,然后列出商店。两个独立的海关单元

我想做什么

example of design

example of cell

任何帮助将不胜感激!

【问题讨论】:

你的代码不好请使用 if else 条件正常 这就是我在这里问的原因! 我举个例子 【参考方案1】:

请使用这样的代码

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 

    if searchActive
    
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! ShopTableViewCell
        let entry1 = auxiliar?[indexPath.row]
        cell.shopImage.hnk_setImage(from: URL(string: (entry1?.Logo)!))
        cell.shopName.text = entry1?.shopname
        return cell

    else
        if withDesign != nil
        
            let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! ShopTableViewCell

            let entry = withDesign[indexPath.row]

            cell.shopImage.hnk_setImage(from: URL(string: entry.Logo))
            cell.shopName.text = entry.shopname
            return cell

         else 

            let cell = tableView.dequeueReusableCell(withIdentifier: "design", for: indexPath) as! DesignTableViewCell
            let entry = withDesign[indexPath.row]

            cell.deignImage.hnk_setImage(from: URL(string: entry.design))
            return cell

        
    

【讨论】:

它给出了致命错误:let entry = withDesign[indexPath.row]中的索引超出范围 请调试代码并检查 withDesign 数组中的变量数 withDesign 的数量是正确的。我想做的是所有商店都将列在Cell 中,如果有一家有设计的商店,那么如果没有设计,则用该设计制作单元格,然后列出这些商店。两个独立的海关单元 你能用源代码和致命错误截图编辑问题 你能再看看我的问题吗

以上是关于两个带有搜索栏的自定义单元格的主要内容,如果未能解决你的问题,请参考以下文章

ios 顶部带有标签栏的自定义 uitableview

Grid布局(四)单元格自定义布局

Android中搜索栏的自定义拇指

带有上下文操作栏的自定义列表视图上的选定项目

当在顶部添加新帖子时,UICollectionView 单元格自定义 FlowLayout 中断

handsontable 给单元格自定义属性