0

iPhoneの連絡先編集で電話番号やメールを追加/編集するのと同じような機能を再現しようとしています。プレースホルダーテキストを使用できる空の行が常にあります。編集モード(ツールバーのボタンを押す)で、UITextFieldを再表示します。「変更された編集」コールバックでは、iPhoneの連絡先編集ビューと同様に、セクションに新しい行を挿入します。ただし、挿入後、2行目の変更を開始すると(3行目は期待どおりに挿入されます)、1行目のテキストフィールドの値がプレースホルダー値にクリアされます。
2行目の挿入時にテキストフィールドの値を1行目に保存する必要があることをどこかで読んだことがありますが、編集が終了すると(おそらく)失われますか?これは私にはかなり奇妙に思えます、そして私はこれが唯一の方法であるかどうか疑問に思いましたか?どの時点でそれを復元するために戻りますか?もちろん、これは繰り返し続けます。新しい行を挿入し、前のすべての行の最後の行の値を変更すると、クリアされます。連絡先編集機能に似た例を誰かに教えてもらえますか?最後の行を常に「+AddValue」行にすることで行の挿入方法を変更する場合、それは役に立ちますか?私はそうは思いません。また、1行目のスタイルをUITableViewCellEditingStyleNoneからUITableViewCellEditingStyleDeleteに変更できれば便利です。しかし、途中で編集NO / YESを切り替えて、遷移を無視するように反応するようにすべての表示行を設定しようとしても、UITableViewCellEditingStyleDeleteを使用して、最後の行を除くすべてを機能させることはできません。だから私は大丈夫だと思ったので、最初の行を削除できないようにしました(私が望んでいたものではありませんが、私はそれと一緒に暮らすことができます)。

4

2 に答える 2

0

あなたの場合、なぜ再利用するのですか?すべての行が常に画面に表示されている場合は、それぞれに新しい UITableViewCell を作成してください。

UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];

コンテンツをその上に移動するように構成します...

[cell.contentView addSubview:WHATEVER_YOU_CREATED];
[cell.contentView sizeToFit];
return cell;

セルの再利用は、リソースを節約するために表示されなくなった行を再利用するための方法です。

于 2013-02-11T16:58:22.667 に答える
0

確認してください。ただし、行をビューの外にスクロールすると同じ問題が発生すると推測しています。そのため、textFieldDidEndEditing だけでなく、私の場合は各挿入で、対応する「新しい」データを格納するために処理する必要があります。各行のデータ ストレージ配列のエントリ。ただし、スクロールのない私の場合は、おそらく次のことを行う必要があります。ご確認をよろしくお願いいたします。

于 2013-02-11T15:44:44.437 に答える