UITableView
スクロールが必要なほどの高さがあります。テーブルの一番上のセルにはUITextField
、ユーザーがテキストを入力するための が含まれています。
これを構築する標準的な方法は、テキスト フィールドを作成して追加し、作成または再利用されたセルに追加することです。cellFOrRowAtIndexPath:
ただし、この一定の再作成は、セルがスクロール アウトして戻ると、フィールドに入力されたテキストが消去されることを意味します。見えます。
私がこれまでに見つけた解決策では、UITextField
委任を使用してテキストの変更を追跡し、iVar またはプロパティに保存することを提案しています。私が使用しているより単純なアプローチではなく、これが推奨される理由を知りたいです。
UITextField
の init メソッドで を作成しUITableViewController
、すぐにプロパティに格納しています。新しいフィールドを初期化するのではcellFOrROwAtIndexPath
なく、既存のフィールドを追加するだけです。セル自体は問題なくリサイクルできますが、いつもオンリーワンを使っているのでUITextField
中身は保たれています。
これは合理的なアプローチですか?何が問題になる可能性がありますか?改善点 (おそらく、フィールドを作成することはできますcellForRowAtIndexPath
が、最初にプロパティが nil かどうかを確認できますか?)