Перезагрузите UITableView, кроме одного его раздела - PullRequest
0 голосов
/ 15 января 2019

У меня есть tableView с несколькими разделами.
Теперь я хочу перезагрузить все разделы tableView, кроме первого (потому что он статический и не меняется).

Теперь я могу перезагрузить разделы этим методом:

reloadSections(IndexSet, with: UITableView.RowAnimation)

но это требует количества разделов, и в моем приложении это динамично и изменяется во времени.
Я могу только сказать, перезагрузить все, что существует после первого раздела.

Я думал, что должен определить IndexSet как-то так:

NSIndexSet *indexSet = [NSIndexPath indexPathWithIndexes:(NSUInteger[]){1, ... } length:???];

и я не знаю, как я могу это сделать!

Любые идеи или предложения будут с благодарностью.

обновление

Это реализация numberOfSectionsInTableView:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    // Inbox Segment
    if (self.selectedIndex == 0) {
        if (self.inboxArray.count > 0) {
            return self.inboxArray.count + 2;
        }
    }

    // Sent Segment
    else if (self.selectedIndex == 1) {
        if (self.sentArray.count > 0) {
            return self.sentArray.count + 2;
        }
    }

    // Outbox Segment
    else if (self.selectedIndex == 2) {
        if (self.outboxArray.count > 0) {
            return self.outboxArray.count + 2;
        }
    }

    // Spam Segment
    else if (self.selectedIndex == 3) {
        if (self.spamArray.count > 0) {
            return self.spamArray.count + 2;
        }
    }

    // Trash Segment
    else if (self.selectedIndex == 4) {
        if (self.trashArray.count > 0) {
            return self.trashArray.count + 2;
        }
    }
    return 1;
}

1 Ответ

0 голосов
/ 15 января 2019

Предполагая, что вы знаете количество секций:

NSIndexSet *sectionsIndexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, self.sections.count - 1)]
[self.tableView reloadSections:sectionsIndexSet withRowAnimation:UITableViewRowAnimationNone];

Swift:

let sectionsIndexSet = IndexSet(1..<sections.count)
tableView.reloadSections(sectionsIndexSet, with: .none)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...