设置UITableView右侧显示的SectionIndex的宽度?

时间:2012-04-10 08:44:56

标签: iphone objective-c ios

如何指定显示SectionIndexes的帧的宽度。我在下面显示的图像将解释我的状况。

Image with UITableView sorted by Index along with it

我想在sectionIndex中包装单词,当SectionIndex框架大小固定时,我可以设置右侧显示的SectionIndex框架的宽度.SectionIndex框架会自动调整大小到它内的单词长度。

我编写代码以从SectionIndexTitle返回数组,如下所示:

NSMutableArray *array = [[NSMutableArray alloc] init];

for (int i = 0; i <[keys count]; i++) {
    NSString *str = [self.keys objectAtIndex:i];
    int length = [str length];
    if (length > 9) {
        str = [NSString stringWithFormat:@"%@..",[str substringToIndex:8]];
    }
       [array addObject:str];
}


NSArray *a =[NSArray arrayWithArray:array];
[array release];

return a;

请你帮我解决这个问题......!

4 个答案:

答案 0 :(得分:2)

不幸的是,使用公共API无法自定义节索引。

如果此功能对您的应用非常重要,您可能最终会创建自定义部分索引视图。

答案 1 :(得分:1)

参考这个答案:

Custom UITableView section index

我认为自定义节索引或创建自定义节索引真的很难或几乎不可能。

如果您需要更多帮助,请与我联系。

希望这有帮助。

答案 2 :(得分:0)

我最近有类似的问题,我没有时间整合自定义的sectionindex。所以我只是用空格修改了部分索引列表中的第一项:

-(NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    return @[@"      A      ", @"B", @"C", @"D", @"E", @"F"];
}

-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
    if ([title containsString:@"A"])
    {
        title = @"A";
    }
    //Your code here
}

通过这个解决方案,我可以修改节索引的宽度!

希望有所帮助:)

答案 3 :(得分:0)

这似乎在iPad和iPhone 5上运行良好。在cellForRow中使用它。

let rightOffset: CGFloat = cell.frame.width - cell.contentView.frame.width