Arrays Swift-如何动态创建标签
我创建了一些代码,可以读取数组,并将每个索引的数据保存到变量中,然后将这些变量传递到创建的标签上 代码如下: 数据arr内容示例: [2,5,5,1]数组中的两个索引Arrays Swift-如何动态创建标签,arrays,swift,arraylist,uilabel,Arrays,Swift,Arraylist,Uilabel,我创建了一些代码,可以读取数组,并将每个索引的数据保存到变量中,然后将这些变量传递到创建的标签上 代码如下: 数据arr内容示例: [2,5,5,1]数组中的两个索引 for i in 0..<dataArr.count { let element = dataArr[i] let labelNum = UILabel() label split = element.components(separatedBy: ",") let num1 = split[0] let num2 = s
for i in 0..<dataArr.count {
let element = dataArr[i]
let labelNum = UILabel()
label split = element.components(separatedBy: ",")
let num1 = split[0]
let num2 = split[1]
let num1Nnum2 = "number 1 :" + num1 + " number 2:" + num2
labelnum.text = num1Nnum2
labelnum.textAlignment = .center
labelnum.frame = CGRect( x:10, y:90, width:250, height: 80)
self.view.addSubview(labelnum)
}
如何创建它,以便在第二次创建标签时,当它读取索引[1]时,它会创建具有相同代码的新标签,但会将标签放在第一个标签下。我曾尝试:
labelnum[i]尝试使用index的值创建新标签,例如当i=1时labelnum1
任何帮助都将不胜感激。创建一个变量以保持标签的Y位置。在每次迭代中,在Y位置变量中添加上一个标签的高度,以将新标签放置在上一个标签的下方
class ViewController: UIViewController {
let dataArr = ["2,5","5,1"]
override func viewDidLoad() {
super.viewDidLoad()
var yPos = 90
for i in 0..<dataArr.count {
let element = dataArr[i]
let labelNum = UILabel()
let split = element.components(separatedBy: ",")
let num1 = split[0]
let num2 = split[1]
let num1Nnum2 = "number 1 :" + num1 + " number 2:" + num2
labelNum.text = num1Nnum2
labelNum.textAlignment = .center
labelNum.frame = CGRect( x:10, y:yPos, width:250, height: 80)
yPos += 80
self.view.addSubview(labelNum)
}
}
创建一个变量以保持标签的Y位置。在每次迭代中,在Y位置变量中添加上一个标签的高度,以将新标签放置在上一个标签的下方
class ViewController: UIViewController {
let dataArr = ["2,5","5,1"]
override func viewDidLoad() {
super.viewDidLoad()
var yPos = 90
for i in 0..<dataArr.count {
let element = dataArr[i]
let labelNum = UILabel()
let split = element.components(separatedBy: ",")
let num1 = split[0]
let num2 = split[1]
let num1Nnum2 = "number 1 :" + num1 + " number 2:" + num2
labelNum.text = num1Nnum2
labelNum.textAlignment = .center
labelNum.frame = CGRect( x:10, y:yPos, width:250, height: 80)
yPos += 80
self.view.addSubview(labelNum)
}
}
iOS中有一个UIStackView,允许您在现有视图的底部或顶部动态添加元素。始终可以添加自动显示在视图底部的新标签。您也可以使用UITableView或UIScrollView来完成这一点
下面是UIStackView的一个示例,它在前一个标签的下方动态添加新标签。我希望您能在您的用例中推断出这一点
class ViewController: UIViewController {
var lastLabelCount = 0
var stackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.white
let tap = UITapGestureRecognizer(target: self,
action: #selector(tapped))
view.addGestureRecognizer(tap)
createViews()
}
func createViews() {
stackView = UIStackView(frame: .zero)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .top
view.addSubview(stackView)
NSLayoutConstraint.activate([
stackView.leftAnchor.constraint(equalTo: view.leftAnchor),
stackView.rightAnchor.constraint(equalTo: view.rightAnchor),
stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
])
}
@objc func tapped() {
let label = UILabel(frame: .zero)
label.translatesAutoresizingMaskIntoConstraints = false
label.textColor = UIColor.black
label.text = "Hi I am label \(lastLabelCount)"
stackView.addArrangedSubview(label)
lastLabelCount += 1
}
}
iOS中有一个UIStackView,允许您在现有视图的底部或顶部动态添加元素。始终可以添加自动显示在视图底部的新标签。您也可以使用UITableView或UIScrollView来完成这一点
下面是UIStackView的一个示例,它在前一个标签的下方动态添加新标签。我希望您能在您的用例中推断出这一点
class ViewController: UIViewController {
var lastLabelCount = 0
var stackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.white
let tap = UITapGestureRecognizer(target: self,
action: #selector(tapped))
view.addGestureRecognizer(tap)
createViews()
}
func createViews() {
stackView = UIStackView(frame: .zero)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .top
view.addSubview(stackView)
NSLayoutConstraint.activate([
stackView.leftAnchor.constraint(equalTo: view.leftAnchor),
stackView.rightAnchor.constraint(equalTo: view.rightAnchor),
stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
])
}
@objc func tapped() {
let label = UILabel(frame: .zero)
label.translatesAutoresizingMaskIntoConstraints = false
label.textColor = UIColor.black
label.text = "Hi I am label \(lastLabelCount)"
stackView.addArrangedSubview(label)
lastLabelCount += 1
}
}