如何在 UIStackview 中添加和删除 UILabel
How to add and remove UILabels in UIStackview
我想在 UIStackview 中添加和删除 UILabel。添加的 UILabel 的数量将取决于字符串的长度(例如,如果字符串是 SMITH,它应该在 UIStackview 中添加 5 个 UILabel。当用户单击下一步按钮时,所有 5 个 UILabel 应该删除,下一个生成的 UILabel 将取决于在下一个字符串上。
我创建了一个将新的 UILabel 添加到 UIStackview 的函数,它仅在用户首次使用时运行良好。但是当用户第二次单击下一步按钮时,我使用的代码没有删除旧的 UILabel,但它仍然在 UIStackview 中添加新的 UILabel。
@IBAction func btnNext(_ sender: UIButton) {
removeLabel()
for i in 0...countArray.count {
if i == count {
for j in 1...countArray[i] {
label.tag = j
text.tag = j
createLabel(x: x, y: y, width: width, height: 1)
createText(x: x, y: y, width: width, height: 30)
x += width + 5
}
}
}
count += 1
}
//Mark:- for removing the old UILable
func removeLabel() {
label.removeFromSuperview()
}
错误:- 它应该在用户第二次单击下一步按钮时删除旧的 UILabel,它并没有删除,而是添加了基于
的新 UILabel
结果:- 它应该根据字符串长度(字符数)添加新的 UILabel 并且用户将单击下一步还需要删除旧的 UILabel 并根据字符串长度(字符数)再次添加新的 UILabel
这是 btnNext(_:)
的样子,
@IBAction func btnNext(_ sender: UIButton) {
let str = "SMITH"
self.stackView.subviews.forEach({ stackView.removeArrangedSubview([=10=]) })
str.forEach { (char) in
let label = UILabel()
label.text = String(char)
stackView.addArrangedSubview(label)
}
}
以上代码为示例。尝试将其与您自己的代码一起使用。
我想在 UIStackview 中添加和删除 UILabel。添加的 UILabel 的数量将取决于字符串的长度(例如,如果字符串是 SMITH,它应该在 UIStackview 中添加 5 个 UILabel。当用户单击下一步按钮时,所有 5 个 UILabel 应该删除,下一个生成的 UILabel 将取决于在下一个字符串上。
我创建了一个将新的 UILabel 添加到 UIStackview 的函数,它仅在用户首次使用时运行良好。但是当用户第二次单击下一步按钮时,我使用的代码没有删除旧的 UILabel,但它仍然在 UIStackview 中添加新的 UILabel。
@IBAction func btnNext(_ sender: UIButton) {
removeLabel()
for i in 0...countArray.count {
if i == count {
for j in 1...countArray[i] {
label.tag = j
text.tag = j
createLabel(x: x, y: y, width: width, height: 1)
createText(x: x, y: y, width: width, height: 30)
x += width + 5
}
}
}
count += 1
}
//Mark:- for removing the old UILable
func removeLabel() {
label.removeFromSuperview()
}
错误:- 它应该在用户第二次单击下一步按钮时删除旧的 UILabel,它并没有删除,而是添加了基于
的新 UILabel结果:- 它应该根据字符串长度(字符数)添加新的 UILabel 并且用户将单击下一步还需要删除旧的 UILabel 并根据字符串长度(字符数)再次添加新的 UILabel
这是 btnNext(_:)
的样子,
@IBAction func btnNext(_ sender: UIButton) {
let str = "SMITH"
self.stackView.subviews.forEach({ stackView.removeArrangedSubview([=10=]) })
str.forEach { (char) in
let label = UILabel()
label.text = String(char)
stackView.addArrangedSubview(label)
}
}
以上代码为示例。尝试将其与您自己的代码一起使用。