为了获得单元格的必要高度,我实现了像
这样的函数+(CGFloat)rowHeightForTableView:(UITableView*)tableView andObject:(NSObject*)theObject {...}
在细胞内。
由于tableView是参数之一,我可以检查它是普通的还是分组的样式表,并在计算中包含结果宽度。但是我应该如何检查是否显示索引?
答案 0 :(得分:2)
您可以检查表视图的数据源是否响应sectionIndexTitlesForTableView:
选择器(数据源必须为索引表视图实现):
if ([tableView.dataSource
respondsToSelector:@selector(sectionIndexTitlesForTableView:)])
{
NSArray *result =
[tableView.dataSource sectionIndexTitlesForTableView:tableView];
if (result != nil)
NSLog(@"tableView is currently indexed");
else
NSLog(@"tableView is not currently indexed");
}
else
NSLog(@"tableView does not implement indexing");
如果数据源响应该选择器,实际调用它并检查结果允许表视图当前从该方法返回nil的可能性,因为它不希望因任何原因或数据源显示索引正在处理多个表视图(其中一些是索引的,一些不是)。