Добавить строки в существующий раздел UITableView - PullRequest
8 голосов
/ 06 мая 2011

Я пытаюсь получить пример кода о том, как добавить строки в существующий UITableView.Я пытаюсь использовать функцию insertRowsAtIndexPaths:.

    [tableView insertRowsAtIndexPaths:addindexes withRowAnimation:UITableViewRowAnimationTop];

Любые идеи, как работают эти индексы и как я могу добавить в существующий раздел или, если у меня нет раздела, создать новыйраздел

Ответы [ 2 ]

11 голосов
/ 06 мая 2011

Вы должны создать массив индексных путей как -

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];

, например, если вы хотите вставить 2-ю строку в раздел 0 и уже иметь 1 строку в разделе 0, а затем создать путь индекса для строки 1в разделе 0 и вызове insertRowsAtIndexPaths для табличного представления, он вставит 2-ую строку в раздел.

Если в табличном представлении нет раздела, вам следует использовать int для источника данных, чтобы не указывать разделов в табличном представлении., в этом случае -

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return noOfSection; //here section is as int which is initially zero
}

, и изначально ваш int "noOfSection" будет равен нулю, тогда в таблице не будет никакого раздела, затем, когда вы захотите добавить раздел, увеличьте значение int на 1 и вызовите [tableView reloadData];

6 голосов
/ 06 мая 2011

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

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return noOfSections;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [[noOfRows objectForIndex:section] intValue];
}

также, если вы обновляете табличное представление, рекомендуется использовать методы beginUpdates и endUpdates.

так вы вставляете новую строку и раздел.

noOfSections++;
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:3] withRowAnimation:UITableViewRowAnimationTop];


// update your array before calling insertRowsAtIndexPaths: method
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:2]] 
                      withRowAnimation:UITableViewRowAnimationTop];

проверьте пример кода, предоставленного яблоком.

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableView_Class/Reference/Reference.html

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