从数据swift“生成”标签

时间:2017-01-10 12:54:39

标签: ios swift tableview tableviewcell

我有

["06:58"]
["07:13", "07:38", "07:53"]
["08:13", "08:38", "08:53"]
["09:13", "09:33", "09:53"]

我希望在tableView中显示它,如图片所示:

enter image description here

每个元素 - 它是UILabel,我创建了class TimeViewCell: UITableViewCell,其中包含属性var labels = [UILabel](),但我不知道如何在我的函数中从数组中推送数据:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cellTime", for: indexPath) as! TimeViewCell
        let showHour = self.infoWripper.sorted(by: { $0.hour < $1.hour })

        cell.labelTime.text = showHour[indexPath.row].showHour()

        for data in showHour {

            print(data.showFullTime()) //here you see my example of data in console
        }

        return cell
    }

1 个答案:

答案 0 :(得分:1)

我会在你的UITableViewCell中添加一个UIStackView。您可以将带有文本的标签添加到UIStackView。

我将你的数据包装成一个数组。

let tableViewData = [["06:58"],
    ["07:13", "07:38", "07:53"],
    ["08:13", "08:38", "08:53"],
    ["09:13", "09:33", "09:53"]]

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "cellTime", for: indexPath) as! TimeViewCell

    cell.configure(data: tableViewData[indexPath.row])

    return cell
}

然后,在你的TimeViewCell中,你必须添加你的UIStackView IBOulet(或以编程方式添加它)和configure方法。

class TimeViewCell: UITableViewCell {

    @IBOutlet var labelStackView: UIStackView!

    func configure(data: Array<String>) {
        for time in data {
            let timeLabel = UILabel()
            timeLabel.text = time
            labelStackView.addArrangedSubview(label)
        }
    }
}