我有一个tappershite,每当你点击它,一个新的文本字段就会显示出来并保存在一个数组中。
我可以创建多个文本字段并将它们存储在一个数组中,但我不知道如何在视图中显示它们。
目前只有第一个将显示在视图中。
我想建立类似的东西,如snapchat与文本。
var myTextField: UITextField = UITextField(frame: CGRect(x: 0,y: 0, width: 300.0, height:30.0))
func addTapGestureToTextImageView() {
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTextImage))
textImageView.isUserInteractionEnabled = true
textImageView.addGestureRecognizer(tapGesture)
}
@objc func handleTextImage() {
textFields.append(myTextField)
let myTextField = UITextField(frame: CGRect(x: 0,y: 0, width: 300.0, height:30.0))
for i in 0..<textFields.count {
myTextField.tag = i
view.addSubview(textFields[i])
print(textFields[i])
}
print(textFields.count)
}
最佳答案
如果你想垂直地堆积它们,你必须用每个文本域的高度来增加y值,从而改变它的帧。
for i in 0..<textFields.count {
var field = textFields[i]
field.frame = CGRect(x: 0, y: 30*i, width: 300, height: 30)
view.addSubview(field)
print(textFields[i])
}
会像这样。但是你需要调整它来正确地对齐它。
我的建议是在baseView中放置一个
UIStackView
,然后使用它的addArrangedSubview()
,它将为您进行叠加。