2012-04-10 12 views
0

テーブルビューでセルを追加したり削除したりするための記事がたくさんあります。私が望むのは、ユーザーがセル内の追加ボタンをクリックしたときに、そのセルにテキストを入力する必要があるかどうかを尋ねる必要があります。次に、ユーザーがセルにテキストを入力して、それをテーブルビューに追加します。それを達成する方法を教えてもらえますか?新しいテーブルビューセルを動的に追加する

+0

私はワークフローを理解しているとは思わない。あなたは、 "ユーザーがセル内のボタンを追加する"をクリックし、 "それがテーブルビューに追加されました"と言っていますが、ボタンを含むセルがあれば、それは既にテーブルに入っていなければなりません。 –

+0

はい。追加ボタンは既定のテキストでセルに既に表示されています。ユーザーが追加ボタンをクリックすると、その特定のセル内のテキストを編集できる必要があります。ユーザーがそのセルにテキストを入力した後、追加のボタンとデフォルトテキストを持つセルを追加する必要があります。 –

答えて

1

セル内ではなくフッターまたはヘッダーに追加ボタンを配置します。セルの追加を管理する方が簡単になると私自身が考えています。これとは別に

、あなたがuitableの代理人としてあなたのコントローラを作る場合、あなたは簡単に、特に、関連するすべてのメソッドにアクセスすることにより、1つのセルを追加または削除することができ、あなたの問題がある内容を正確に把握していない:

- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleInsert) { 
     // ...... 
    } 
} 
呼び出され

[yourTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath ] withRowAnimation:UITableViewRowAnimationAutomatic]; 
0

(UITableViewCell *) createNewCellForTableViewのようなメソッドを持っています。これにより、UITableViewCellが作成され、返されます。

CellForRowAtIndexPathでは、この方法を使用してtableViewのすべてのセルを作成します。 [tableView reloadData];を実行すると、新しいセルを追加するたびに新しいセルを作成する必要があるため、これはこの方法で行う必要があります。

最後に、新しいセルを作成した後、ADDボタンのIBActionで、tableViewを再ロードしてください。

〜シンプルな代替:

あなただけのテキストを追加するには、ユーザーを探しているので、あなたがのUITableViewCellに埋め込まれtextFieldを持つことができます。ユーザーが入力を終了するとすぐに、dataSource(配列はtableViewに設定されています)にテキストを追加し、tableViewをリロードすることができます。 textFieldがenabledまたはdisabledになっていることを確認してください。

0

これは私がそれを行う方法であり、それは動作します:次のようにインスタンス変数を作成し、最初の

int numRows = 0; 

次のようにメソッドnumberOfRowsInSectionを実装します。

今で
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    return numRows; 
} 

を私のアプリケーションは、1ヶ所でREST APIを使用してJSONを取得しています。numRowsの値をnumRows = [jsondata count];として更新しています

cellForRowAtIndexPathのように、動的コンテンツがある場合はそのようにしてください。たとえば、私の場合、私はindexPath.rowを使用して、セルを準備して返します。

このメソッドは、変数numRowsの数が0より大きい場合、私は、上記で説明したように、numRowsの数のコンテンツを更新するので、すぐにあなたの動的なコンテンツを持っているように呼び出し、すぐに呼び出す方法となります[YourtableView reloadData];


関連する問題