两个带有搜索栏的自定义单元格
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
中,如果有一家有设计的商店,那么如果没有设计,则用该设计制作单元格,然后列出这些商店。两个独立的海关单元
你能用源代码和致命错误截图编辑问题
你能再看看我的问题吗以上是关于两个带有搜索栏的自定义单元格的主要内容,如果未能解决你的问题,请参考以下文章