Как проверить, являются ли ячейки UITableViewCells пустыми

#iphone #ios

#iPhone #iOS

Вопрос:

Я использую indexpathforvisiblerows, который дает indexpaths видимых строк в uitableview. Как я могу проверить наличие пустых ячеек в возвращаемых indexpaths ?.

` NSArray *visiblePaths = [self.RootViewController.accountTableView indexPathsForVisibleRows];

для (NSIndexPath *indexPath в visiblePaths) {

     UITableViewCell *cell = [self.rootViewController.accountTableView cellForRowAtIndexPath:indexPath];
   // I am getting the issue when i call this function 
        cell.detailTextLabel.text = [self getLastCallDate:indexPath];


}
  

// Функция getLastCallDate

Учетная запись * учетная запись = [self.fetchedResultsController objectAtIndexPath:indexPath]; NSString *lastCallDate;

 if ([[account Calls] count] > 0) {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYY-MM-dd"];

    Call *call = [[account Calls] objectAtIndex:0];

     lastCallDate = [NSString stringWithFormat:@"Last Call Date: %@",[dateFormatter stringFromDate:call.date]];

    //NSLog(@"detail - %@", cell.detailTextLabel.text);
    [dateFormatter release];
    return lastCallDate;
}
else
    lastCallDate =@"";
return lastCallDate;
  

`
При поиске выбранных результатов контроллер не будет иметь столько значений, сколько видимых строк, что приводит к исполнению с привязкой к массиву

Ответ №1:

Перед вызовом getLastCallDate: проверьте indexPath.row , меньше ли количество элементов в вашем источнике данных. Что-то вроде-

 for (NSIndexPath *indexPath in visiblePaths) 
{
     if(indexPath.row < [self.items count]) //items is your data source array
     {
          //your code
     }
}
  

Ответ №2:

Я предполагаю, что у вас есть простой UITableView без заголовка раздела, только строки. Затем количество строк, отображаемых на дисплее tableView.frame.size.height / tableView.rowHeight . Вычтите количество видимых строк.

пример для пустых строк и видимых ячеек

С помощью приведенного выше алгоритма я получаю total rows 16 visible cells 5 .

Теперь вам нужно вычислить 16 - 5 .

Комментарии:

1. Нет, у меня есть несколько табличных ячеек, в которых есть данные, а остальные пустые. Мне нужно количество ячеек, в которых есть данные