Загрузка большего количества строк в табличном представлении - PullRequest
0 голосов
/ 08 февраля 2012

Сначала мне нужно загрузить 15 записей, а затем, когда пользователь нажимает на строку «Показать больше ячеек», мне нужно загрузить следующие 20 или доступные записи в моем табличном представлении.Я смотрю на этот вопрос, размещенный в SO.

Эту функцию можно увидеть и в appStore.Где вы загружаете следующее количество записей.

Здесь решение:

`- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.numberOfRowsVisible;
}

-(void)moreButtonClickAction {
    if (self.numberOfRowsVisible < self.maxNumberOfRows) 
        self.numberOfRowsVisible = MIN(self.numberOfRowsVisible + 10, self.maxRows);
    [self.tableView reloadData];
}

Я инициализировал и жестко закодировал значение в viewDidLoad для numberOfRowsVisible как 15.

self.numberOfRowsVisible=[NSNumber numberWithInt:15];

в numberOfRowsInSection - я не уверен, правильно ли это.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return MIN([self.arrayRecords count], 15);
}

в moreButtonClickAction

-(void)moreButtonClickAction {
    if (self.numberOfRowsVisible < [self.arrayRecords count]) 
        self.numberOfRowsVisible = MIN(self.numberOfRowsVisible + 15, [self.arrayRecords count]);
    [self.tableView reloadData];
}

Так я отредактировал свой код, чтобы он соответствовалВышеуказанное предложение осталось в СО.но это не работает.Кажется, есть какая-то проблема с MIN.В данный момент я не нахожусь в MAC, поэтому я не могу вспомнить точное предупреждение / ошибку, которую я получил.Так что кто-нибудь может мне помочь.

Ответы [ 3 ]

1 голос
/ 08 февраля 2012

numberOfRowsInSection должно возвращать целое число. self.numberOfRowsVisible не является целым числом.

viewDidLoad:

self.numberOfRowsVisible=15;

Основная реализация:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.numberOfRowsVisible;
}

-(void)moreButtonClickAction {
    if (self.numberOfRowsVisible < [self.arrayRecords count]) {
        self.numberOfRowsVisible += 15;
        if (self.numberOfRowsVisible > [self.arrayRecords count]) {
            self.numberOfRowsVisible = [self.arrayRecords count];
        }
    }
    [self.tableView reloadData];
}

от макушки головы, код мог бы сделать ре-факторинг.

1 голос
/ 08 февраля 2012

1) Не используйте объект NSNumber, подойдет простое целое число.2) Почему бы просто не иметь целочисленную переменную, которая показывает текущее количество строк, которое вы хотите отобразить, и инициализировать с 15, и сохранить его в своем экземпляре класса.3) Вам даже не нужно использовать MIN:

return [self.arrayRecords count] < self.numberOfRowsVisible ? [self.arrayRecords count] : self.numberOfRowsVisible;
1 голос
/ 08 февраля 2012

Вы должны использовать MAX вместо MIN, если хотите показать все возможные записи.

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