我正在使用Swift中的应用程序。一开始我提供了一些我想添加的输入。在下一个视图中,我创建了与我在第一个视图中定义的一样多的UITextField。我在按下按钮后存在从TextFields存储所有这些值的问题。在我看来,最有效的解决方案是创建一个UITextField数组,并将TextField的每个值添加到数组中,然后在按钮中将所有TextFields中的值添加到数组中。不幸的是,它不起作用。有什么建议?提前谢谢。
override func viewDidLoad() {
super.viewDidLoad()
var counter = 0
for i in 1...mainInstance.numberOfInputs
{
super.viewDidLoad()
array.insert(UITextField(frame: CGRect(x: 0, y: 50, width: 60, height: 20)), at: i)
array[i].center = CGPoint(x: 200,y: 50 + counter)
array[i].textAlignment = NSTextAlignment.center
array[i].layer.borderWidth = 1
array[i].layer.borderColor = UIColor.black.cgColor
self.outletScrollView.addSubview(array[i])
counter += 50
}
super.viewDidLoad()
let button = UIButton(type: .system) // let preferred over var here
button.frame = CGRect(x: 200, y: 50 + counter, width: 100, height: 20)
button.setTitle("Recalculate", for: UIControlState.normal)
button.addTarget(self, action: "actionRecalculate:", for: UIControlEvents.touchUpInside)
self.outletScrollView.addSubview(button)
outletScrollView.contentInset = UIEdgeInsetsMake(0, 0, CGFloat(counter+100), 0)
}
答案 0 :(得分:1)
您可以使用以下方式轻松创建:
let textFields = [UITextField]()
您应该考虑使用UIScrollView
(在您的示例中)或(在我的意见中更好的想法)UITableView
添加您的UITextfields
。所以你有多行,每行都有一个UITextField。可以轻松自定义行数/文本字段(例如,从FirstViewController获取)。
只需创建自定义UITableViewCell
- 添加UITextField
并关联IBOutlet
即可。要获取每个UITextField
的值,您可以迭代所有单元格,并读出值。如果您需要更多帮助,请问。
答案 1 :(得分:1)
创建UITextfield数组可以这样做
// Create an empty array of type UITextField
var listOfTextFields : [UITextField] = []
// In viewDidLoad, create a textfield and add it to the array
override func viewDidLoad() {
super.viewDidLoad()
for i in 0...mainInstance.numberOfInputs-1 {
let textField = UITextField((frame: CGRect(x: X, y: Y*i, width: yourWidth, height: yourHeight)))
textField.delegate = self
listOfTextFields.append(textField)
}
}
在这个UITextField设置中,我没有考虑任何格式来缩短答案。
答案 2 :(得分:0)
尽管这可能不是确切的用例,但可以帮助其他具有类似用例的对象(特别是通过编程创建的文本字段或自定义uicell)。
txtfield.tag = indexPath.row // or other int
然后在数组初始化并委派之后实现文本字段didEndEditing
@IBAction func endedEditing(_ sender: UITextField) {
arr[sender.tag] = sender.text
}