1

私のビューでは、右上隅に追加ボタンが必要です。それをクリックすると、テキストフィールド付きのアラートビューが表示されます。データを追加してalertviewの[追加]ボタンをクリックすると、ユーザーが入力したテキストで新しいセルが作成されます。

私のコード:

-(IBAction)addNewBreed:(id)sender{
    UIAlertView *addAlert=[[UIAlertView alloc]initWithTitle:@"Add New Breed" message:@"\n\n" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Add",nil];
    UITextField *addTextField=[[UITextField alloc]initWithFrame:CGRectMake(12,45,260,25)];
    [addTextField becomeFirstResponder];
    [addTextField setBackgroundColor:[UIColor whiteColor]];
    addTextField.clearButtonMode=UITextFieldViewModeWhileEditing;
    [addAlert addSubview:addTextField];
    [addAlert show];
    [addAlert release];

}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];

if ([buttonTitle isEqualToString:@"Add"]) {

    [treeTable insertRowsAtIndexPaths:[NSArray arrayWithObject:addIndexPath] withRowAnimation:UITableViewRowAnimationBottom];
}
else
        return;
}

下部のテーブルに新しいセルを追加するのを手伝ってください。

4

3 に答える 3

2

新しいセルを挿入する場合insertRowsAtIndexPathは、最初にテーブルの dataSource を更新する必要があります。さらに、このメソッドは次の間で呼び出す必要があります。

[table beginUpdates];

[table endUpdates];

これから:_

beginUpdatesおよびメソッドによって定義されたアニメーション ブロックで呼び出されたときのこのメソッドの動作に注意してくださいendUpdates。UITableView は、行またはセクションの削除を処理するまで、行またはセクションの挿入を延期します。これは、挿入および削除メソッド呼び出しの順序に関係なく発生します。これは、操作が連続する挿入または削除操作に使用される配列インデックスに影響を与える可能性がある可変配列内の項目の挿入または削除とは異なります。

于 2012-04-14T11:19:29.847 に答える
2

このメソッドを使用して行を挿入できます。これを試してください

[self.tableView insertRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] withRowAnimation:UITableViewRowAnimationLeft];
于 2012-04-14T10:06:03.780 に答える
1

配列または辞書 (cell.textlable.text の表示に使用するものは何でも) に新しい値を追加し、UitableView のリロード データ メソッドを使用します。

[MyTableView ReloadData];

于 2012-04-14T09:33:32.057 に答える