0

iPhoneのアドレス帳に似たアドレス帳をiPhoneで作成しようとしています。新しい連絡先を作成したい場合UITextField、電話番号を入力するために値を入力しているときに、に新しいセルを作成していTableViewます。以下のコードを試しましたが、複数のセルが作成されています。

(void)textFieldDidBeginEditing:(UITextField *)textField
{
 UITableViewCell *parentCell = (UITableViewCell *)[self.tview indexPathsForSelectedRows];        NSIndexPath *currRow = [self.tview indexPathForCell:parentCell];

[self addRow:currRow text:textField.text];    

}


(void)addRow:(NSIndexPath *)indexPath text:(NSString *)text
{
  NSIndexPath *nextRow;

    if(indexPath.section==0)
       i++;
    nextRow = [NSIndexPath indexPathForRow:i-1 inSection:indexPath.section];

        [self.tview beginUpdates];
        //    [self.tview reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]    withRowAnimation:UITableViewRowAnimationAutomatic];
        [self.tview insertRowsAtIndexPaths:[NSArray arrayWithObject:nextRow] withRowAnimation:UITableViewRowAnimationAutomatic];
        [self.tview endUpdates];
}
4

1 に答える 1

0
in your code [self.tview indexPathsForSelectedRows];  
does not return the selected cell while it returns the array of index path ... that's why its creating a multiple row

カスタムUITextViewClassを作成し、NSIndexPathを使用して1つのプロパティを作成します。
インデックスパスの行のセルに割り当てます...

yourTextView.yourIndexPath = indexPath;

//the try to use this method

(void)textFieldDidBeginEditing:(UITextField *)textField {

    [self addRow:indexPath text:textField.text];
}

// then add your row as you want.... 

これがお役に立てば幸いです

于 2012-06-14T10:56:16.120 に答える