Получить значения из массива текстового поля - PullRequest
0 голосов
/ 01 июня 2018

Я хотел бы получить доступ к значениям моего массива текстового поля, но запутался, так как массив, который я создал, с тегами.Так кто-нибудь знает, как получить значение списка (массива), который я создал?

Я хочу создать функцию, в которой я: Получить значение текстовых полей в списке. Сортировать их по тегам, получить значение каждого отдельного текстового поля, объединить их в строку

Ответы [ 4 ]

0 голосов
/ 01 июня 2018

1. Ваша коллекция Outlet будет примерно такой

    @IBOutlet var textFields: [UITextFields]!

2.Сортировать по тегу

    textFields.sort { $0.tag < $1.tag}

3.Используйте цикл for, чтобы получить значение из массива и объединить его

    var string = ""

    for item in textFields {
      string += item.text
    }
0 голосов
/ 01 июня 2018

Предположим, у вас есть массив UITextField

  let textfield1 = UITextField()
        textfield1.tag = 1
        textfield1.text = "1"

        let textfield2 = UITextField()
        textfield2.tag = 2
        textfield2.text = "2"

        let textfield3 = UITextField()
        textfield3.tag = 3
        textfield3.text = "3"

        let arrayOfTextFields :[UITextField] = [textfield2,textfield1,textfield3]

        let result = self.getInputsValue(arrayOfTextFields, seperatedby: "-")

          print(result)

Метод, который вы хотите:

  func getInputsValue(_ inputs:[UITextField], seperatedby value: String) -> String {
        return inputs.sorted {$0.tag <  $1.tag}.map {$0.text}.compactMap({$0}).joined(separator: value)
    }

Результат: 1-2-3

0 голосов
/ 01 июня 2018

Допустим, у вас есть следующий массив,

    var txtArray:[UITextField] = [UITextField]()

    for i in 0...4 {
        let txtField = UITextField(frame: .zero)
        txtField.text = "\(i)"
        txtField.tag = i
        txtArray.append(txtField)
    }

Чтобы получить значения, которые вы должны сделать следующим образом,

    let sorted = txtArray.sorted { $0.tag < $1.tag }
    let values = sorted.map { return $0.text! }
    let test = values.joined(separator: " ")

    print(test)

Вывод будет

0 1 2 3 4
0 голосов
/ 01 июня 2018

Создайте выходное соединение и соедините все ваши текстовые поля с одним и тем же.

Выходное соединение выглядит как

@IBOutlet strong var labels: [UILabel]!

Затем, чтобы получить все содержимое текстового поля и добавить то же самое.

var resultString = ""
for item in enumerate(self.labels) {
   resultString = resultString + item.text
}
...