在 UITableView 的不同部分显示不同的行

Displaying Different Row in Different Section in UITableView

我从 API - 中获取了此数据,这是接下来 7 天的天气预报。我想将其显示为 tableview where

但是如果我 select 这样的节号 -

func numberOfSections(in tableView: UITableView) -> Int {
    return myList.count  // myList is an array of containing the 7 day's data 
}

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

它在所有部分打印同一行(数组的第一个数据)。那么如何在不拆分数组的情况下在单独的部分打印单独的天气?

说到UITableView中的section和rows,关键通常是二维数组。 尝试像这样创建一个二维数组:

myList[sectionItems][rowItems]

此数组内部应如下所示:

myList = [
 [date, minTemp, maxtemp],
 [date, minTemp, maxtemp],
 [date, minTemp, maxtemp],
 [date, minTemp, maxtemp]
]

因此您的 UITableViewDelegate 和 DataSource 函数将如下所示:

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

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

以上示例将允许您有 4 个部分,每个部分将有 3 行。

然后你可以在第一行打印日期,其余的在其他行打印。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  let cell = UITableViewCell()                    
  cell.textLabel.text = myList[indexPath.section][indexPath.row]
  return cell
}