黑马程序员技术交流社区

标题: UITableView实现QQ联系人界面(高仿真版) [打印本页]

作者: 叶子哥    时间: 2016-6-19 00:22
标题: UITableView实现QQ联系人界面(高仿真版)

    最近在做一个有关UITableView相关的项目,故又对UITableView加深了学习.至于UITableView的强大之处,在此就不累赘再谈了.那么在这个Demo中,有什么可学习的内容呢?
       说的再多,不如一张GIF图来的直接:



1.重用cell,注册cell重用标志
//注册cell重用标识符
[self.tableView registerClass:[YYCell class] forCellReuseIdentifier:@"linkmanCell"];
2.重用headview,注册headview重用标志
//注册头部视图的重用标识符
[self.tableView registerClass:[YYheaderView class] forHeaderFooterViewReuseIdentifier:@"header"];
3.子类化headview,自定义头视图中包含的内容
@implementation YYheaderView
- (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier{
if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
//创建与头视图大小一样的底部view
UIView *headView = [[UIView alloc] init];
headView.backgroundColor = [UIColor whiteColor];
headView.frame = CGRectMake(0, 0, SCREEN_W, 44);
[self.contentView addSubview:headView];
//创建带指示图片的button
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"brand_expand"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(tipExpandBtn:) forControlEvents:UIControlEventTouchUpInside];
btn.frame = CGRectMake(20, 14, 30, 16);
self.btn = btn;
[self.contentView addSubview:btn];
//创建显示组信息的label
UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(80, 7, 160, 30)];
titleLabel.textColor = [UIColor blackColor];
self.titleLabel = titleLabel;
[self.contentView addSubview:titleLabel];
}
return self;
}
4.调用系统带小标题的cell的type
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];
return self;
}
5.刷新组中cell的方法,采用block回调(自定义一个block类型)
//定义一个回调的block类型
typedef void (^YYheaderCallBack)(BOOL expand);
6.字典转模型(经典做法)
    总结:本Demo中唯一逻辑思考方面的难点,就是在自定义block类型,在何处赋值 和 调用,以此来刷新组中cell的变化.如还没理解到位,请去下载源代码:GitHub - yaomars/-QQ-Demo  ,觉得看的顺眼的话,请用力点 star...
作者: 橘子哥    时间: 2016-6-21 15:32
图片没有显示哇,需要重新上传哦,
作者: y977975092    时间: 2016-6-21 21:39
谢谢分享           
作者: 飞飞飞飞12138    时间: 2016-6-21 22:55
没图没图没图.....
作者: wzg682735    时间: 2016-6-22 08:31
uitableview当然重要啦
作者: 叶子哥    时间: 2016-6-30 00:20
重新上图 :
                          


作者: ldk1991125    时间: 2016-6-30 13:35
没图没真相,怎么办




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2