gpt4 book ai didi

ios - 我如何引用以编程方式添加文本字段以从 Swift 内部获取数据?

转载 作者:行者123 更新时间:2023-11-30 11:18:16 25 4
gpt4 key购买 nike

我尝试引用新添加的文本字段。重点是放入这些文本字段数据,然后将其保存在 CoreData 中,但我不知道该怎么做。

打印屏幕下方

By the help of Add button I can add new row of textfields

Textfields 的模型位于另一个类“txtfields”中,而不是在 ViewController 中。在文本字段类中,所有文本字段都放置在函数中。

class txtFields: UIView {




func inputTxtFields( value: Int,value2: Int, value3:Int, ScrollView: UIView) {



var tf = UITextField(frame: CGRect(x: 20, y: value, width: 100, height: 30))
tf.backgroundColor = .white
tf.placeholder = "excercise"
tf.layer.cornerRadius = 5
ScrollView.addSubview(tf)




var tf2 = UITextField(frame: CGRect(x: 150, y: value2, width: 30, height: 30))
tf2.backgroundColor = .white
tf2.layer.cornerRadius = 5
tf2.placeholder = "rp"
ScrollView.addSubview(tf2)



let tf3 = UITextField(frame: CGRect(x: 150, y: value3, width: 30, height: 30))
tf3.backgroundColor = .white
tf3.layer.cornerRadius = 5
tf3.placeholder = "kg"
ScrollView.addSubview(tf3)



let tf4 = UITextField(frame: CGRect(x: 200, y: value2, width: 30, height: 30))
tf4.backgroundColor = .white
tf4.layer.cornerRadius = 5
tf4.placeholder = "rp"
ScrollView.addSubview(tf4)


let tf5 = UITextField(frame: CGRect(x: 200, y: value3, width: 30, height: 30))
tf5.backgroundColor = .white
tf5.layer.cornerRadius = 5
tf5.placeholder = "kg"
ScrollView.addSubview(tf5)


let tf6 = UITextField(frame: CGRect(x: 250, y: value2, width: 30, height: 30))
tf6.backgroundColor = .white
tf6.layer.cornerRadius = 5
tf6.placeholder = "rp"
ScrollView.addSubview(tf6)

let tf7 = UITextField(frame: CGRect(x: 250, y: value3, width: 30, height: 30))
tf7.backgroundColor = .white
tf7.layer.cornerRadius = 5
tf7.placeholder = "kg"
ScrollView.addSubview(tf7)


let tf8 = UITextField(frame: CGRect(x: 300, y: value2, width: 30, height: 30))
tf8.backgroundColor = .white
tf8.layer.cornerRadius = 5
tf8.placeholder = "rp"
ScrollView.addSubview(tf8)

let tf9 = UITextField(frame: CGRect(x: 300, y: value3, width: 30, height: 30))
tf9.backgroundColor = .white
tf9.layer.cornerRadius = 5
tf9.placeholder = "kg"
ScrollView.addSubview(tf9)

let tf10 = UITextField(frame: CGRect(x: 350, y: value2, width: 30, height: 30))
tf10.backgroundColor = .white
tf10.layer.cornerRadius = 5
tf10.placeholder = "rp"
ScrollView.addSubview(tf10)

let tf11 = UITextField(frame: CGRect(x: 350, y: value3, width: 30, height: 30))
tf11.backgroundColor = .white
tf11.layer.cornerRadius = 5
tf11.placeholder = "kg"
ScrollView.addSubview(tf11)

}

在 ViewController(vc3) 中,我创建文本字段对象:let Fields = textfields()。

在 IBoutlet func add 中,textfields 类中的函数将启动,每次按添加按钮都会创建一个新行。

class vc3: UIViewController {

var train = [Training]()
let access = Data()
var name:String?
var buttonPressed = 0
var wartoscy = 250
var wartosc2 = 265
var wartosc3 = 230
var addClicked = 0
var indexPath = 0
let Fields = txtFields()
var quantity = 0


@IBAction func add(_ sender: UIButton) {
print("clicked")

if self.quantity < 10 {
Fields.inputTxtFields( value: wartoscy, value2: wartosc2, value3: wartosc3, ScrollView: scview)

} else {

Alert.showAlert(vc: self)

return
}

buttonPressed += 1
quantity += 1
addClicked += 1
btnSave.isHidden = false
btnconstraints.constant += 100
wartoscy += 80
wartosc2 += 80
wartosc3 += 80

}

正如您现在所看到的,我有这些文本字段的名称,例如 tf1 ... tf2 .. 等等,但我不知道如何引用它们来创建核心数据属性。也许我应该创建没有功能的它们?但我需要有值(wartosc),用于将文本字段移动到较低的位置。变量 wartosc 放置在 vc3 中。我当然希望将所有这些文本字段放在另一个类中,就像现在一样。

当我使用 Storyboard 时,解决方案很简单:IBoutlet,但现在我不知道如何找到解决方案。

最佳答案

您需要像这样引用它们

class txtFields: UIView {
var tf:UITextField!
func inputTxtFields( value: Int,value2: Int, value3:Int, ScrollView: UIView) {
tf = UITextField(frame: CGRect(x: 20, y: value, width: 100, height: 30))
}
}

//

let Fields = txtFields()
Fields.inputTxtFields( value: wartoscy, value2: wartosc2, value3: wartosc3, ScrollView: scview)
print(Fields.tf.text)

//

此外,我建议创建一个返回文本字段实例的函数,而不是重复相同的代码

//

根据您的评论

class txtFields: UIView {
var allTexFs = [UITextField]()
func inputTxtFields( value: Int,value2: Int, value3:Int, ScrollView: UIView) {
let tf = UITextField(frame: CGRect(x: 20, y: value, width: 100, height: 30))
allTexFs.append(tf)
}
}

关于ios - 我如何引用以编程方式添加文本字段以从 Swift 内部获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51558084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com