0

だから私はテキストフィールドに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)

}

セルを選択すると、正しいテキストが表示され、最終的にボタンが表示されます。クリックすると、すべてのセルをループして配列に格納します(これは可能です)。インデックスパスを使用してセルをループし、テキストフィールドデータを保存する方法が必要です。助けていただければ幸いです

4

1 に答える 1

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デリゲートを使用すると、textFieldtextFieldDidEndEditingで値が取得されます

于 2015-08-27T06:26:07.157 に答える