我正在使用indexpathforvisiblerows,它给出了uitableview中可见行的索引路径。如何检查返回的索引路径中的空白单元格?。
`NSArray * visiblePaths = [self.rootViewController.accountTableView indexPathsForVisibleRows];
for(在visiblePaths中的NSIndexPath * indexPath) {
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;
` 在搜索获取结果时,控制器的值不会与导致数组绑定执行的可见行一样多
答案 0 :(得分:2)
在致电getLastCallDate:
之前,请检查indexPath.row
是否小于数据源中的项目数。像 -
for (NSIndexPath *indexPath in visiblePaths)
{
if(indexPath.row < [self.items count]) //items is your data source array
{
//your code
}
}
答案 1 :(得分:1)
我假设您有一个简单的UITableView,没有节标题,只有行。然后是显示tableView.frame.size.height / tableView.rowHeight
上显示的行数。减去可见行数。
使用上述算法,我得到total rows 16 visible cells 5
。
现在由你来计算16 - 5
。