我想用编程的方法把按钮并排放在一个单元格中,然后添加操作,但是首先我想看看UIClabel是怎么工作的。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let array = ["house", "bugs", "perl"] //comes from API
let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! DetailViewCell
var hStackView = UIStackView()
var vStackView = UIStackView()
vStackView.axis = .vertical
vStackView.spacing = 8
vStackView.alignment = .top
var count: Int = 0
for ar in array {
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 50, height: 21)) //CGRectZero)
label.text = ar
label.textColor = .black
if count % 2 == 0 {
hStackView = UIStackView()
hStackView.axis = .horizontal
hStackView.spacing = 8
hStackView.alignment = .fill
hStackView.distribution = .fill
hStackView.addArrangedSubview(label)
if (count + 1) == array.count {
vStackView.addArrangedSubview(hStackView)
}
}
else {
hStackView.addArrangedSubview(label)
vStackView.addArrangedSubview(hStackView)
}
count += 1
}
cell.addSubview(vStackView)
cell.layoutIfNeeded()
return cell
}
1条答案
按热度按时间f87krz0w1#
您看不到任何内容是因为垂直UISstackView不知道应将其放置在单元格中的什么位置以及它应该有多大。您可以使用布局约束来做到这一点:
第一行告诉它使用约束进行布局,
NSLayoutConstraints.activate
告诉它如何将vStackView边界绑定到单元格视图边界,在这种情况下,vStackView现在应该占据单元格提供的整个空间。