Добавить пользовательскую ячейку в UITableview без редактирования - PullRequest
0 голосов
/ 29 декабря 2011

Я некоторое время боролся с этой вещью, поэтому я наконец решил спросить, что я делаю неправильно.

Я создал пользовательский UITableViewCell, который имеет UITextField в качестве подпросмотра в ячейках. СодержимоеПосмотреть.То, что я пытаюсь сделать, это вставить новую строку под ним со стандартным заполнителем, когда textView начинает редактирование.Я предполагал, что это будет возможно в методе ниже, но я всегда получаю сбой.Есть ли способ сделать это?

Я новичок в iOS, и представления таблиц до сих пор получают меня каждый раз.

- (void)textFieldDidBeginEditing:(UITextField *)textField
    {
        UITableView *tableView = (UITableView*)self.view;

        if ([textField tag] == 2) { // Only add row if textfield 2 is editing

            [tableView beginUpdates];
            [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[tableView indexPathForSelectedRow]] withRowAnimation:UITableViewRowAnimationTop];
        [tableView endUpdates];
        }
    [textField setFont:[UIFont systemFontOfSize:18.0]];
    [textField setTextColor:[UIColor blueColor]];
    }

Если у кого-то есть какие-либо указатели или какая-либо ссылка (кроме документации Apple)это будет оценено.

1 Ответ

0 голосов
/ 29 декабря 2011

Вы не обновляете коллекцию, которая является источником для tableView перед вставкой.

[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[tableView indexPathForSelectedRow]] withRowAnimation:UITableViewRowAnimationTop];

Что он делает, это немедленно запрашивает источник данных и делегирует.Теперь вы можете вставить «заполнитель», но содержит ли ваш массив или словарь все, что требуется для правильного возврата данных?Если вы собираетесь вставить новую строку, а источник не обновлен правильно, он потерпит крах.Поэтому, чтобы исправить это, вам нужно изменить исходный код, прежде чем начинать обновления для tableView.

Я знаю, что вы не хотите, чтобы документ от Apple, но посмотрите на это, и это может решить вашу проблему.

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html#//apple_ref/doc/uid/TP40007451-CH10-SW9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...