我想在UItableView右侧的部分索引中包装该单词。
问题是,如果字长增加,节索引宽度也会增加,表视图单元格内容视图大小也会减小。我不想显示截面索引数组对象的子字符串。因为我想显示整个单词我必须包装它。
-(NSArray*) sectionIndexTitlesForTableView:(UITableView *)tableView
{
NSMutableArray *array = [[NSMutableArray alloc] init];
for (int i = 0; i <[keys count]; i++) {
NSString *str = [self.keys objectAtIndex:i];
[array addObject:str];
}
NSArray *a =[NSArray arrayWithArray:array];
[array release];
return a;
}
数组中的对象返回sectionIndextitle方法是冗长的,我想包装该单词。
任何人都知道如何做到这一点?
答案 0 :(得分:2)
您只能创建自己的“部分索引视图”作为自定义UIView
并且很乐意这样做
只计算你的tableview的高度,计算你的部分的数量
然后在
中绘制你的章节标题- (void)drawRect:(CGRect)rect
然后检测触摸事件
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
计算您触摸的部分,然后调用tableview方法
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;
然后把它放在你的tableview上,eazy完成!
答案 1 :(得分:0)
似乎您的回答是否定的,但以下内容应该可以解决您问题背后的问题。
我会在UITableViewDelegate协议上使用此函数代替tableView:viewForHeaderInSection:有关详细信息,请参阅此处的文档UITableViewDelegate Docs。注 - tableView:heightForHeaderInSection:也必须实现。这些函数组合将允许您返回一个带有UILabel子视图的视图,该子视图将numberOfLines设置为0,即根据需要添加,并将文本设置为您需要的任何值。
答案 2 :(得分:0)
无法将节索引包装到多行。这在默认UI中没有意义。自定义标题是您完成此任务的最佳选择。
答案 3 :(得分:0)
为部分创建自定义标题标题。在那里,您可以使用标签并根据标题的长度为其分配行数。您还需要相应地设置节标题的高度。
答案 4 :(得分:0)
在str
中添加“NSMutableArray
”之前,请检查它是否有一个或多个字?
并选择您想要的范围并将其添加到您的数组中..
使用NSmakeRange
来制作要在每个部分的索引中显示的字符范围..