0

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

带有按索引排序的 UITableView 的图像以及它

我想将单词包装在 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

4 回答 4

2

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

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

于 2012-04-10T09:08:12.297 回答
1

参考这个答案:

自定义 UITableView 部分索引

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

如果您需要更多帮助,请告诉我。

希望这可以帮助。

于 2012-04-10T09:22:30.447 回答
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
}

有了这个解决方案,我设法修改了部分索引的宽度!

希望能帮助到你 :)

于 2015-10-26T09:54:29.367 回答
0

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

let rightOffset: CGFloat = cell.frame.width - cell.contentView.frame.width
于 2017-06-02T05:50:48.200 回答