2013-02-26 2 views
1

Я пытаюсь добавить строки в мой Tableview так:ReloadData после обновления UITableView

[myArray addObject:@"Apple"]; 

[myTableView beginUpdates]; 
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop]; 
[myTableView endUpdates]; 

Проблема заключается в том, что клетки не получают обновилась. Текстовые метки не соответствуют массиву данных.

исправить эту проблему, добавив:

[myTableView reloadData]; 

но что делает хорошая вставка анимации уйти.

Идеи? Благодаря!

+0

как @ stephen-darlington сказал, когда вы ** addObject: **. Он добавляет к концу индекс изменчивого массива –

ответ

4

addObject: добавляет объект к концу изменчивого массива. Затем, на следующей строке, вы скажете табличному представлению, что есть новая строка для отображения на самом вершине таблицы. Если у вас нет своего массива «назад», похоже, что вы говорите таблице, чтобы «вставить» ячейку в неправильное место.

+0

, который сделал трюк, спасибо! – Michael

1

Вы хотите добавить элемент в конец массива, но при добавлении строки в начало таблицы ... Попробуйте так:

NSString* obj = @"Apple"; 
[myArray addObject:obj]; 

[myTableView beginUpdates]; 
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[myArray indexOfObject:obj] inSection:0]] withRowAnimation:UITableViewRowAnimationTop]; 
[myTableView endUpdates]; 
Смежные вопросы