UITableView检查是否显示索引

UITableView检查是否显示索引,uitableview,indexing,Uitableview,Indexing,为了获得单元格的必要高度,我实现了如下函数 +(CGFloat)rowHeightForTableView:(UITableView*)tableView andObject:(NSObject*)theObject {...} 在细胞内 由于tableView是参数之一,因此我可以检查它是普通样式表还是分组样式表,并在计算中包括结果宽度。但是如何检查是否显示索引?您可以检查表视图的数据源是否响应节IndexTitlesFortableView:选择器(数据源必须为索引表视图实现该选择器):

为了获得单元格的必要高度,我实现了如下函数

+(CGFloat)rowHeightForTableView:(UITableView*)tableView andObject:(NSObject*)theObject {...}
在细胞内


由于tableView是参数之一,因此我可以检查它是普通样式表还是分组样式表,并在计算中包括结果宽度。但是如何检查是否显示索引?

您可以检查表视图的数据源是否响应
节IndexTitlesFortableView:
选择器(数据源必须为索引表视图实现该选择器):

如果数据源响应该选择器,则实际调用它并检查结果允许表视图当前从该方法返回nil的可能性,因为无论出于何种原因,它都不想显示索引,或者如果数据源正在处理多个表视图(其中一些已被索引,而另一些未被索引)

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");