解决存在间隙的问题
环信即时通讯v3.2.3版本中,通讯录的右侧会存在间隙
在Demo中找通讯录类,在 -(void)viewDidLoad
中添加如下代码:
self.tableView.sectionIndexColor = [UIColor lightGrayColor];
self.tableView.sectionIndexBackgroundColor = [UIColor clearColor];
效果如下:
FEFA9605-A909-45EE-A932-5BB7C8DD5D31.png这样tableView就不会由于索引的出现存在间隙了。
但出现了另一个问题,就是搜索框会变得不对称
B9535BFD-1096-4A94-AFD1-F1C783455C00.png
这个问题还未解决。
设置显示全部的索引
通讯录中搜索方法 sectionIndexTitlesForTableView
可知索引是放置在数组 self.sectionTitles
中
搜索self.sectionTitles
找到 - (void)_sortDataArray:(NSArray *)buddyList
此方法应该是设置通讯录中好友的数据
self.sectionTitles 已经添加 a-z和#
//建立索引的核心, 返回27,是a-z和#
UILocalizedIndexedCollation *indexCollation = [UILocalizedIndexedCollation currentCollation];
[self.sectionTitles addObjectsFromArray:[indexCollation sectionTitles]];
在此方法中继续读,会发现,通讯录列表中不存在的首字母索引会被移除掉
10FF108E-1759-425D-8C03-375584447352.png所以,新建一个数组A来保存全部索引,然后在 sectionIndexTitlesForTableView 中 返回数组A即可
A00DACB9-066C-4016-A3DF-81F95D98B0D7.png- (void)_sortDataArray:(NSArray *)buddyList
中
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
中
效果如下
982B415D-B41C-4049-9FE8-E8E428D7F051.png
网友评论