美文网首页iOS Developer
环信通讯录右侧存在间隙的解决办法

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

作者: 小北风sky | 来源:发表于2017-03-09 20:28 被阅读142次

    解决存在间隙的问题

    环信即时通讯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

    C02E604B-918C-431F-B6CD-C19C1F302789.png

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

    效果如下


    982B415D-B41C-4049-9FE8-E8E428D7F051.png

    相关文章

      网友评论

        本文标题:环信通讯录右侧存在间隙的解决办法

        本文链接:https://www.haomeiwen.com/subject/wgsggttx.html