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

时间:2017-09-18 09:14:55

标签: ios swift uitableview uisearchbar

我正在尝试在我的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

enter image description here enter image description here

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

我正在尝试做的是所有商店都将在Cell中列出,如果有一个设计有商店的商店,那么如果没有设计就可以制作设计单元,那么只需列出商店。两个单独的海关单元

我正在尝试做什么

example of design

example of cell

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分: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

        }
    }