环信通讯录右侧存在间隙的解决办法

解决存在间隙的问题

环信即时通讯v3.2.3版本中,通讯录的右侧会存在间隙


环信通讯录右侧存在间隙的解决办法_第1张图片

在Demo中找通讯录类,在 -(void)viewDidLoad 中添加如下代码:

self.tableView.sectionIndexColor = [UIColor lightGrayColor];
self.tableView.sectionIndexBackgroundColor = [UIColor clearColor];

效果如下:

环信通讯录右侧存在间隙的解决办法_第2张图片
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]];

在此方法中继续读,会发现,通讯录列表中不存在的首字母索引会被移除掉

环信通讯录右侧存在间隙的解决办法_第3张图片
10FF108E-1759-425D-8C03-375584447352.png

所以,新建一个数组A来保存全部索引,然后在 sectionIndexTitlesForTableView 中 返回数组A即可

环信通讯录右侧存在间隙的解决办法_第4张图片
A00DACB9-066C-4016-A3DF-81F95D98B0D7.png

- (void)_sortDataArray:(NSArray *)buddyList

环信通讯录右侧存在间隙的解决办法_第5张图片
C02E604B-918C-431F-B6CD-C19C1F302789.png

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

效果如下


环信通讯录右侧存在间隙的解决办法_第6张图片
982B415D-B41C-4049-9FE8-E8E428D7F051.png

你可能感兴趣的:(环信通讯录右侧存在间隙的解决办法)