SWIFT... как пройти через UIcollectionView и получить значения из текстового поля в массив

Так что я дал текстовым полям тег 10, я хочу перебрать ячейки представления коллекции, получить значения текстового поля и сохранить их в массиве... вот код.......

override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {

    let cell1 =  collectionView.cellForItemAtIndexPath(indexPath)

    let textbox1 = cell1?.viewWithTag(10) as? UITextField

    print(indexPath.row)

print(textbox1?.text)

}

если я выберу ячейку, то будет показан правильный текст, и в конечном итоге у меня будет кнопка, при нажатии на которую id захочет зациклить все ячейки и сохранить ее в массиве (что я могу сделать). Мне нужен способ перебирать ячейки, используя путь индекса и хранить данные текстового поля, любая помощь будет высоко ценится

1 ответ

Решение

Способ 1:

Но это только дает видимые значения Cells textField

for item in self.collectionView!.visibleCells() as! [CollectionViewCell] {
        var indexpath : NSIndexPath = self.collectionView!.indexPathForCell(item as CollectionViewCell)!
        var cell : CollectionViewCell = self.collectionView!.cellForItemAtIndexPath(indexpath) as! CollectionViewCell
        println(cell.textField1.text)
    }

Способ 2:

глобально объявить mutableArray

var arrayCellsTextFields : NSMutableArray = []

в cellForItemAtIndexPath

cell.textField1.tag  = indexPath.row;
if(arrayCellsTextFields .containsObject(cell.textField1)==false)
{
   arrayCellsTextFields .addObject(cell.textField1)
}

Массив содержит ваш текстовый объект textFields, вы можете идентифицировать текстовое поле с его тегом, т.е. cell.textField1.tag & indexPath.row одинаковы

Способ 3:

в cellForItemAtIndexPath

cell.textField1.tag  = indexPath.row;
cell.textField1.delegate = self;

используя делегата textField textFieldDidEndEditing вы получите значения в textField

Другие вопросы по тегам