我有
["06:58"]
["07:13", "07:38", "07:53"]
["08:13", "08:38", "08:53"]
["09:13", "09:33", "09:53"]
我希望在tableView
中显示它,如图片所示:
每个元素 - 它是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
}
答案 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)
}
}
}