1

すべてのuitablewviewセルを繰り返し、各セルに含まれるuitextviewのテキストを表示したいと思います。私のテーブルには多くの行があり、すべてに到達するにはスクロールする必要があります。実装を行いましたが、スクロール中に現在表示されているセルのテキストのみが表示され、他のセルではnullが表示されます。

for (int i = 0; i < [propertiesTableView numberOfRowsInSection:0]; i++) {
    UITableViewCell* cell = [propertiesTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
    UITextView* tx = (UITextView*)[cell viewWithTag:2];
    NSString* temp = tx.text;
    NSLog(@"%@", temp);
}

これを修正する方法は?

4

2 に答える 2

1

これは、表示されているセルのみがインスタンス化されるために発生します(関数を覚えていdequeueReusableCellWithIdentifier:ますか?)。テーブルデータソースから必要な情報を抽出する必要があります。

于 2012-05-15T10:56:44.487 に答える
0

はい。パフォーマンスを考慮して、テーブルビューに常に初期化されたすべてのセルが保持されるわけではないため、この動作は予想されます。あなたの解決策は、データソースを更新することです-たとえば、それが配列の場合、それを繰り返し、それに応じて値を変更します-これはMVCの力です(高速UI、個別のモデル)

于 2012-05-15T10:57:10.717 に答える