TableView - 多个单元格处理

时间:2016-11-15 17:46:31

标签: ios uitableview swift2 tableviewcell

我有一个tableview,我有一个部分和两个单元格。第一个单元格用于显示分区名称,第二个单元格用于显示相应区域的名称。

var  Division = [“Dhaka”,”Khulna”]
var  Districts = [[“Gazipur”,”Gopalganj”,”Faridpur”],[“Bagerhat”,”Jessor”,”Chuadanga”]]

我需要像这样在表格视图中出现。

Dhaka
Gazipur
Gopalganj
Faridpur

Khulna
Bagerhat
Jessor
Chuadanga

起初我接近传统方式,但是当需要在cellForRowAtIndexPathnumberOfRowsInSection协议中定义时,我无法前进:(

请以任何方式提出建议。在此先感谢:)

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题

此处除法将是您的章节标题

override func numberOfSectionsInTableView(tableView: UITableView) -> Int 
{
  return Division.count
}

和分区将是你的行

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

For Showing不要忘记添加返回header和cellForRowAtIndexPath视图的方法。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
}

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?{
}

答案 1 :(得分:0)

您可以使用的部分数量:

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

然后,要指定您可以使用的每个部分中的行数:

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

最后你可以这样设置你的单元格:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
    let cell = self.TableView.dequeueReusableCell(withIdentifier: "Cell") as! TableViewCell
    let cellText = Districts[indexPath.section][indexPath.row]
    cell.Label.text = cellText
    return cell
}

对于TableView标题,您可以这样写:

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String?
{
    if section < Division.count
    {
        print(Division[section])
        return Division[section]
    }
    else
    {
        return nil
    }
}

你的TableViewCell类是:

import UIKit

class TableViewCell: UITableViewCell
{
@IBOutlet weak var Label: UILabel!
override func awakeFromNib()
{
    super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool)
{
    super.setSelected(selected, animated: animated)

}

}