前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发中QQ好友列表下拉显示全部好友实现思路

iOS开发中QQ好友列表下拉显示全部好友实现思路

作者头像
用户1451823
发布2018-09-13 15:27:56
1.6K0
发布2018-09-13 15:27:56
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337680

在QQ的好友页面有一个点击各个分类,然后展示分类中所有好友的效果,今天就说一说实现该效果的一个思路。

这个页面肯定是需要一个UITableView的,在tableview的代理方法中要实现分区的一个方法,即要返回tableview的分区数。返回的分区数就是好友的分类数。

tableview中各个分区的行数就是各个好友分类中的好友数。显示各个好友分类的视图是各个分区的一个头视图。头视图会有一个点击事件,用于好友分类的展开和收起。

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

方法的实现很关键,1.要根据section的不同返回不同的行数。   2.要根据该行的点击状态显示行数(有显示所有的行数或者不显示行数两种状态)。代码:

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

GroupModel *groupModel = _dataArraysection;

NSInteger count = groupModel.isOpened ? groupModel.groupFriends.count : 0;

return count;

}

tableview的数据源一般是一个数组,数组中会有模型,每一个分区对应一个模型,模式中除了有每个分区要显示的数据,我们还应为模型增加一个属性来存储各个分区的点击状态即各个好友分类是否展开。

每次点击各个分区的头视图的时候需要完成两件事:1.改变各个模型中的点击的状态属性  2.更新tableview的点击的分区。

代码:

  • (void)clickAction:(UIButton *)btn{

GroupModel *groupModel = _dataArraybtn.tag;

// 改变是否显示详情的状态

    groupModel.isOpened = !groupModel.isOpened;

    [self.tableView reloadSections:NSIndexSet indexSetWithIndex:btn.tag withRowAnimation:UITableViewRowAnimationAutomatic];

}

这里我在各个分区的头视图上添加了一个按钮。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年06月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档