Я только недавно начал программирование для iPhone, и я создаю приложение, которое подключается к базе данных и получает набор имен строк и отображает их. Когда выбрано, изменение цвета фона строк, т. Е. Вы можете сделать несколько выборов, и все они будут разных цветов. Поэтому я возвращаю XML с сервера без проблем, и я создал UITableView
для отображения ячеек. Однако я не знаю, как добавить ячейки в таблицу. Я посмотрел на insertRowsAtIndexPaths
, но я не уверен, как его использовать? Как я понимаю, insertRowsAtIndexPaths
принимает два параметра:Добавление программ программно в UITableView
NSArray, содержащий строку, в которой ячейка должна находиться и в каком разделе. Проблема заключается в том, что мое приложение будет иметь динамическое количество строк. Как я могу создать NSArray, если не знаю, сколько строк у меня будет? Можно ли использовать NSMutableArray?
Второй параметр, который требуется, - это анимация - это довольно просто.
Другая проблема, с которой я сталкиваюсь, - это где я действительно создаю ячейки? Как вы передаете ячейки в таблицу?
Я пробовал читать документацию, но это просто не кажется очень ясным! Вот код, у меня есть на данный момент внутри метода loadview контроллера вида:
//Before this I get the XML from the server so I am ready to populate
//cells and add them to the table view
NSArray *cells = [NSArray arrayWithObjects:
[NSIndexPath indexPathForRow:0 inSection:0],
[NSIndexPath indexPathForRow:1 inSection:0],
[NSIndexPath indexPathForRow:2 inSection:0],
[NSIndexPath indexPathForRow:3 inSection:0],
[NSIndexPath indexPathForRow:4 inSection:0],
[NSIndexPath indexPathForRow:5 inSection:0],
[NSIndexPath indexPathForRow:6 inSection:0],
[NSIndexPath indexPathForRow:7 inSection:0],
[NSIndexPath indexPathForRow:8 inSection:0],
[NSIndexPath indexPathForRow:9 inSection:0],
[NSIndexPath indexPathForRow:10 inSection:0],
[NSIndexPath indexPathForRow:11 inSection:0],
[NSIndexPath indexPathForRow:12 inSection:0],
nil];
[eventTypesTable beginUpdates];
[eventTypesTable insertRowsAtIndexPaths:cells withRowAnimation:UITableViewRowAnimationNone];
[eventTypesTable endUpdates];
Спасибо, я вижу, я был совершенно смущен о том, что работал. Мне удалось корректно выводить ячейки, но у меня проблема. Я извлекаю 12 строк из базы данных, однако экран только подходит 7. Когда экран заполнен и в симуляторе, если я попытаюсь прокрутить вниз, я получаю сообщение об ошибке в 'NSString * sEventType = [[eventTypes valueForKeyPath: @" name .text "] objectAtIndex: indexPath.row];' внутри метода cellForRowAtIndexPath. Есть что-то, чего я не хватает? Как я должен добавить контроллер прокрутки или что-то еще? Еще раз спасибо за быстрый и полезный ответ! – KerrM
Ссылка не работает. Вот почему вы должны хотя бы опубликовать некоторый пример кода вместо того, чтобы полагаться на внешние ссылки. –
ссылка не работает, но вы можете найти содержание этого URL-адреса здесь: http://web.archive.org/web/20150928131750/http://www.iosdevnotes.com/2011/10/uitableview-tutorial/ – Upsilon42