Как узнать, является ли ячейка первой в разделе - PullRequest
2 голосов
/ 24 января 2012

При настройке UITableView, как узнать, является ли ячейка первой, последней или единственной в секции в

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath` 

метод?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 24 января 2012

Чтобы узнать, является ли это последней строкой в ​​разделе, вызовите tableView:numberOfRowsInSection: для делегата источника данных (предположительно, это self, поскольку вы используете метод tableView:cellForRowAtIndexPath:). Если значение, возвращаемое этим методом, равно indexPath.row+1, вы находитесь в последней строке. Если дополнительно indexPath.row == 0, вы находитесь в единственном ряду. Если indexPath.row == 0, но tableView:numberOfRowsInSection: вернул число, отличное от 1, вы смотрите на первую строку в разделе.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSUInteger count = [self tableView:tableView numberOfRowsInSection:indexPath.section];
    BOOL first = indexPath.row == 0;
    BOOL last = indexPath.row+1 == count;
    if (first && last) {
        NSLog(@"The only cell in section %d", indexPath.section);
    } else if (first) {
        NSLog(@"The first cell in section %d", indexPath.section);
    } else if (last) {
        NSLog(@"The last cell in section %d", indexPath.section);
    } else {
        NSLog(@"Nothing special...");
    }
    // Do the rest of your work
}
1 голос
/ 24 января 2012

NSIndexPath имеет всю необходимую информацию. Ряд и раздел.

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