如何用字典中的分组结构中的数据填充UITableView?

时间:2018-02-28 11:50:10

标签: ios swift uitableview dictionary struct

我有以下结构,其中包含来自已解析JSON的数据。

Cat

我需要在带有' callDate'的UITableView中显示这些数据。作为节标题。所以我在这个字典中对结构进行了分组:

struct callRailData {
var callDate: String
var userDetails = callData()
}

struct callData{
var callerName: String?
var callerNumber: String?
var callerCityName: String?
var callerCountryName: String?
var callerStateName: String?
var callAnsweredState: Bool?
var callDirection: String?
var callDuration: String?
var callRecordingURL: String?
var callRecordingPlayer: String?
var callSource: String?
var callCompanyName: String?
}

我不知道如何在tableview中显示这些数据。如何从'部分'中获取numberOfSections和numberOfRowsInSection。 请帮助我成为Swift和iOS开发的初学者。

2 个答案:

答案 0 :(得分:0)

通常,我们使用array作为tableview的数据源。提供numberOfRows =数组计数和" cellForRow"数组中的数据源对象。

答案 1 :(得分:0)

我认为你不需要这样做分组.. 这就是希望它会起作用。

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

它会根据您的用户数量制作部分。     现在每个部分都有一行显示数据。

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



 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "your cell", for: indexPath) as! Your Cell class
         cell.callerNameLabel.text = user[indexpath.section].userdetails.callerName 
        return cell
    }

此func将设置您的第二个标题标题

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