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代码,所有单元格只包含标签,我想在我的第一部分添加更多标签和按钮
答案 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}}