arrays - 如何使用 swift 用两个不同的数组填充 TableView 中的两个部分?

标签 arrays uitableview swift sections

我有两个数组 Data1 和 Data2,我想将每个数组中的数据(它们包含字符串)填充到两个不同部分的 TableView 中。

第一部分的标题应为“Some Data 1”,第二部分的标题应为“KickAss”。

我的两个部分都填充了第一个数组中的数据(但也没有标题)。

到目前为止,这是我的代码:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 2
}

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 {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
    let ip = indexPath
    cell.textLabel?.text = Data1[ip.row] as String
    return cell
}

在 cellForRowAtIndexPath 方法中,我是否可以像在 numberOfRowsInSection 方法中那样以某种方式识别该部分?

另外,如何给每个部分命名?

最佳答案

TableView 单元格

您可以使用多维数组。例如:

let data = [["0,0", "0,1", "0,2"], ["1,0", "1,1", "1,2"]]

对于节数,使用:

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

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

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

最后,您需要设置您的单元格:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cellText = data[indexPath.section][indexPath.row]

    //  Now do whatever you were going to do with the title.
}

TableView 标题

您可以再次使用数组,但这次只有一维:

let headerTitles = ["Some Data 1", "KickAss"]

现在为各节设置标题:

override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    if section < headerTitles.count {
        return headerTitles[section]
    }

    return nil
}

上面的代码检查该部分是否有标题并返回它,否则返回nil。如果 headerTitles 中的标题数量小于 data 中的数组数量,则不会有标题。

结果

enter image description here

关于arrays - 如何使用 swift 用两个不同的数组填充 TableView 中的两个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29578965/

相关文章:

java - "no primitives in container"规则是否适用于数组?

swift - 无法更改 tabBar 内的选项卡(tabBar : didSelectItem item:)

ios - 如何使用 NSMutableArray 作为我的 UITableView 的数据源

Swift 2.0/Parse - 查询完成速度不够快,因此应用程序在启动时崩溃

ios - iOS-App 中的 Facebook 时间线

ios - 使用 Alamofire 获取响应

ios - JSON 解码器因 URLSession 失败

令人头疼的 Javascript 数组排序

c - 指针算术我不清楚

c - 读取文件并存储在数组中