如何在tableview的第一部分中添加按钮和标签,第二部分仅包含标签

时间:2017-04-11 04:28:28

标签: ios uitableview swift3

sections = [
        Section.init(name: "SelectFromOptions", items:  dealnameArray),
        Section(name: "merchant Details", items:merchantdetailsArray),
        Section(name: "How to use deals", items: ["iPhone 6s", "iPhone 6", "iPhone SE", "Accessories"]),
        Section(name: "things to remember", items: ["exchange for cash not allowed"]),
        Section(name: "Cancelation policy", items: ["Once bought cannot exchange"]),
        Section(name: "what you get", items: ["Capacity buliding courses"])
    ]


 func numberOfSections(in tableView: UITableView) -> Int {
    return sections.count
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return sections[section].items.count
}

// 
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as UITableViewCell? ?? UITableViewCell(style: .default, reuseIdentifier: "cell")
    cell.textLabel?.numberOfLines = 0

    cell.textLabel?.text = sections[(indexPath as NSIndexPath).section].items[(indexPath as NSIndexPath).row]
    return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return sections[(indexPath as NSIndexPath).section].collapsed! ? 0 : 44.0
}

我想在每个部分添加不同的标签和按钮,是否可能? ,通过使用bpove代码,所有单元格只包含标签,我想在我的第一部分添加更多标签和按钮

4 个答案:

答案 0 :(得分:3)

这很简单。只需使用两个动态单元格,一个仅包含标签,另一个包含按钮和标签(或任何您需要的)。第一部分使用一个单元格,第二部分使用另一个单元格。就是这样。

答案 1 :(得分:0)

您可以尝试使用该类型代码..

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        var rowCount = 0
        if section == 0 {
            rowCount = Data1.count
        }
        if section == 1 {
            rowCount = Data2.count
        }
        return rowCount
    }



 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexpath.section == 0
{      
  let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
        let ip = indexPath
        cell.textLabel?.text = Data1[ip.row] as String
        return cell
    }
else if indexpath.section == 1
{      
  let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
        let ip = indexPath
        cell.textLabel?.text = Data1[ip.row] as String
        return cell
    }
}

答案 2 :(得分:0)

switch indexPath.section {
    case 0:
        //add buttons and labels here
        //prase data
        break
    case 1:
        //add only labels here
        //parse data
        break
    default:
        break
    }

或者您可以使用 if else 以及

  if indexpath.section = 0 {
     // create button and label here
     } else {
     // create label here
     }

您需要在 cellForRowAtIndexPath

中编写此代码段

答案 3 :(得分:0)

您需要创建自定义单元格。创建一个名为CustomCell的新文件。在此文件中使用以下代码段

cellForRowAtIndexPath

现在转到故事板并在tableview中添加一个新的原型单元格。选择新创建的单元格,并在身份检查器中将其设置为func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if indexPath.section == 0 { let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) as! CustomCell //Here you can access the button and the label as cell's property using //cell.btn & //cell.lbl return cell } let cell = tableView.dequeueReusableCell(withIdentifier: "cell") cell.textLabel?.numberOfLines = 0 cell.textLabel?.text = sections[(indexPath as NSIndexPath).section].items[(indexPath as NSIndexPath).row] return cell } (第三个选项 - 右上角)。

在属性检查器中将此单元格的标识符设置为 customCell (第四个选项 - 右上角)。

为这个新创建的单元格添加一个按钮和一个标签,并通过连接检查器连接出口(最后一个选项 - 右上角)。

返回您的代码并在{{1}}中,复制以下代码段

{{1}}