#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. Нет, у меня есть несколько табличных ячеек, в которых есть данные, а остальные пустые. Мне нужно количество ячеек, в которых есть данные