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