iOS:TableView中的多个部分无法正常工作

时间:2018-10-03 07:05:42

标签: ios swift uitableview

我正在开发一个需要显示带有标题的多行的应用程序。就我而言,仅显示一个部分。我已经搜索了所有内容,但找不到合适的解决方案。

Here is my code:

class Timeline: UITableViewCell {
      @IBOutlet weak var timelineData: UITextView!
}

class StudenTimelineViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

let section = ["pizza", "deep dish pizza", "calzone"]

let items = [["Margarita", "BBQ Chicken", "Peproni"], ["sausage", "meat lovers", "veggie lovers"], ["sausage", "chicken pesto", "prawns & mashrooms"]]

override func viewDidLoad() {
    super.viewDidLoad()
}

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

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

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return self.section[section]
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "TimelineId", for: indexPath) as! Timeline
    let gpsData = items[indexPath.section][indexPath.row]

    cell.timelineData.text = gpsData
    return cell
}

func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 40
}

What I am getting enter image description here

我将如何获得所有部分。预先感谢。

2 个答案:

答案 0 :(得分:3)

这是因为您的方法名称func numberOfSectionsInTableView(tableView: UITableView) -> Int不正确,因此没有被调用。

func numberOfSections(in tableView: UITableView) -> Int替换名称,然后发现魔术发生了。

答案 1 :(得分:0)

// MARK:-表格视图数据源

func numberOfSections(in tableView: UITableView) -> Int {
    return 2
}

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCell(withIdentifier: "tableviewCell", for: indexPath)
    cell.selectionStyle = UITableViewCellSelectionStyle.none

    return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
    return UITableViewAutomaticDimension

}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat
{
    return UITableViewAutomaticDimension

}

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
    let cell: UITableViewCell
    cell = tableView.dequeueReusableCell(withIdentifier: "tableviewHeader")!

    cell.selectionStyle = UITableViewCellSelectionStyle.none
    cell.backgroundColor = UIColor.white

    return cell
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 32;
}