我正在尝试创建多个具有不同类的自定义单元格


extension DashboardView: UITableViewDataSource, UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return recents.count
    }

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return contents.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let recent = recents[indexPath.row]
    let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
    cell .setRecent(recent: recent)

    cell.delegate = self
    return cell
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let content = contents[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: "ContentCell") as! ContentCell
        cell .setContent(content: content)

        cell.delegate = self
        return cell
    }
}

我尝试创建其他扩展程序,但不起作用

我尝试创建其他扩展程序,但不起作用

您需要更改cellForRowAt具有不同布局用途的第一个单元格的 e.x

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let recent = recents[indexPath.row]
    if indexPath.row == 0 {
      let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell1") as! RecentCell1
      cell .setRecent(recent: recent) 
      cell.delegate = self 
      return cell
   }
   else {
      let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell2") as! RecentCell2
      cell .setRecent(recent: recent) 
      cell.delegate = self 
      return cell
   }
}

您需要根据需要返回单元格,如下所示。

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

    let info = arrOffers[indexPath.row]
    switch info.valueForString(key: "type") {
    case "coupon":
        if let cell = tableView.dequeueReusableCell(withIdentifier: "OfferCouponTblCell") as? OfferCouponTblCell {
            cell.configure(info)
            return cell
        }            
    default:
        if let cell = tableView.dequeueReusableCell(withIdentifier: "PaymentOfferTblCell") as? PaymentOfferTblCell {
            cell.configure(info)                           
            return cell
        }
    }        
}

如果你想看到两个数组,你可以在numberOfRowsInSection 函数中添加两个数组。但不要忘记索引可以在cellForRowAt 函数中更改。我假设最近的计数是 1。

extension DashboardView: UITableViewDataSource, UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return recents.count + contents.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if indexPath.row == 0 {
            let recent = recents[indexPath.row]
            let cell = tableView.dequeueReusableCell(withIdentifier: "ContentCell") as! ContentCell
            cell.setContent(content: content)
            cell.delegate = self as? ContentCellDelegate
            return cell
        }
        else {
            let content = contents[indexPath.row - 1]
            let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
            cell.setRecent(recent: recent)
            cell.delegate = self
            return cell
        }        
    }
}

通过应用此方法,我只看到一个值

extension DashboardView: UITableViewDataSource, UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return recents.count
//      return contents.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let recent = recents[indexPath.row]
        let content = contents[indexPath.row]
        if indexPath.row == 0 {
            let cell = tableView.dequeueReusableCell(withIdentifier: "ContentCell") as! ContentCell
            cell.setContent(content: content)
            cell.delegate = self as? ContentCellDelegate
            return cell
        }
        else {
            let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
            cell.setRecent(recent: recent)
            cell.delegate = self
            return cell
        }        
    }
}

在此处输入图像描述

您在屏幕截图中看到的值只是内容单元格的值

相关内容

  • 没有找到相关文章

最新更新