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

时间:2019-07-15 13:16:08

标签: ios swift iphone uitableview mobile

console.log(
    "04/07/2019".replace(/0(?=\d\/)/g, '')
)    

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

4 个答案:

答案 0 :(得分:1)

  

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

对于具有不同布局使用方式的第一个单元格,您需要更改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
   }

}

答案 1 :(得分:0)

您需要按照以下要求返回单元格。

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
        }
    }        

}

答案 2 :(得分:0)

通过使用一种方法,我只能看到一个值

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
        }        
    }

}

enter image description here

您在屏幕快照中看到的值仅是ContentCell的值

答案 3 :(得分:0)

如果要查看两个数组,可以在 numberOfRowsInSection 函数中添加两个数组。但是请不要忘记 cellForRowAt 函数中可以更改的索引。我认为最近的人数是1。

class Repository{
  constructor(){
    if(this.instance){
      return this.instance;
    }
    
    this.list = [];
    this.instance = this;
  }
  
  get obj(){...}
  addObj(obj){...}
}