iOS TableView实现QQ好友列表(一)

一,创建项目




二,创建所需属性及实现列表

首先给ViewController创建两个属性

[objc]  view plain copy
  1. UITableView *tableView;//展示列表  
  2. NSArray *titleArray;//第一层列表需要展示的数据  


初始化

[objc]  view plain copy
  1. tableView=[[UITableView alloc]initWithFrame:CGRectMake(00, SCREEN_WIDTH, SCREEN_HEIGHT)];  
  2. tableView.showsVerticalScrollIndicator=NO;  
  3. tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;  
  4. [self.view addSubview:tableView];  


[objc]  view plain copy
  1. <span style="white-space:pre">    </span>titleArray=[[NSArray alloc]initWithObjects:@"朋友",@"亲戚",@"同学",@"驴友",@"论坛好友", nil nil];  

ViewController 添加TableView 相关的协议

[objc]  view plain copy
  1. @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>  
  2. {  
  3.     UITableView *tableView;//展示列表  
  4.     NSArray *titleArray;//第一层列表需要展示的数据  
  5.       
  6.       
  7. }  

实现相关协议

[objc]  view plain copy
  1. #pragma mark --tableViewDelegate  
  2. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  
  3. {  
  4.     //返回列表的行数  
  5.     return titleArray.count;  
  6. }  
  7.   
  8. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  
  9. {  
  10.     return 0;  
  11. }  
  12. -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section  
  13. {  
  14.     return 50;  
  15. }  
  16. -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section  
  17. {  
  18.     UIView *view=[[UIView alloc]initWithFrame:CGRectMake(00, SCREEN_WIDTH, 30)];  
  19.       
  20.     UILabel *titleLabel=[[UILabel alloc]initWithFrame:CGRectMake(205, SCREEN_WIDTH, 30)];  
  21.     titleLabel.text=[titleArray objectAtIndex:section];  
  22.     [view addSubview:titleLabel];  
  23.       
  24.     return view;  
  25. }  

到此为止已经实现了第一层分类列表的实现


接下来 我们实现第二层。比如说展开朋友分组就会出现所有朋友分组下的好友列表

首先创建一个字典用来存储相关信息


[objc]  view plain copy
  1. NSArray *friendsArray;//好友列表  
  2. NSArray *familyArray;//亲戚列表  
  3. NSArray *schoolmateArray;//同学列表  
  4. NSArray *friendstravelArray;//驴友列表  
  5. NSArray *xianFriendsArray;//西安好友列表  
  6. NSArray *strangersArray;//陌生人列表  
  7.   
  8. NSDictionary *dataDic;//第二层需要展示的数据  


初始化数据

[objc]  view plain copy
  1. -(void)initDataSource  
  2. {  
  3.     titleArray=[[NSArray alloc]initWithObjects:@"朋友",@"亲戚",@"同学",@"驴友",@"西安好友",@"陌生人", nil nil];  
  4.       
  5.     NSDictionary *dic01=[[NSDictionary alloc]initWithObjectsAndKeys:@"张三丰",@"name",@"男",@"sex", nil nil];  
  6.     NSDictionary *dic02=[[NSDictionary alloc]initWithObjectsAndKeys:@"邓超",@"name",@"男",@"sex", nil nil];  
  7.     NSDictionary *dic03=[[NSDictionary alloc]initWithObjectsAndKeys:@"吴奇隆",@"name",@"男",@"sex", nil nil];  
  8.       
  9.     friendsArray=[[NSArray alloc]initWithObjects:dic01,dic02,dic03, nil nil];  
  10.       
  11.     NSDictionary *dic11=[[NSDictionary alloc]initWithObjectsAndKeys:@"爸爸",@"name",@"男",@"sex", nil nil];  
  12.     NSDictionary *dic12=[[NSDictionary alloc]initWithObjectsAndKeys:@"弟弟",@"name",@"男",@"sex", nil nil];  
  13.     NSDictionary *dic13=[[NSDictionary alloc]initWithObjectsAndKeys:@"三哥",@"name",@"男",@"sex", nil nil];  
  14.     NSDictionary *dic14=[[NSDictionary alloc]initWithObjectsAndKeys:@"大伯",@"name",@"男",@"sex", nil nil];  
  15.     NSDictionary *dic15=[[NSDictionary alloc]initWithObjectsAndKeys:@"二舅",@"name",@"男",@"sex", nil nil];  
  16.       
  17.     familyArray=[[NSArray alloc]initWithObjects:dic11,dic12,dic13,dic14,dic15, nil nil];  
  18.       
  19.     NSDictionary *dic21=[[NSDictionary alloc]initWithObjectsAndKeys:@"胖子",@"name",@"男",@"sex", nil nil];  
  20.     NSDictionary *dic22=[[NSDictionary alloc]initWithObjectsAndKeys:@"雄哥",@"name",@"男",@"sex", nil nil];  
  21.     NSDictionary *dic23=[[NSDictionary alloc]initWithObjectsAndKeys:@"小六子",@"name",@"男",@"sex", nil nil];  
  22.       
  23.     schoolmateArray=[[NSArray alloc]initWithObjects:dic21,dic22,dic23, nil nil];  
  24.       
  25.       
  26.     NSDictionary *dic31=[[NSDictionary alloc]initWithObjectsAndKeys:@"三炮",@"name",@"男",@"sex", nil nil];  
  27.     NSDictionary *dic32=[[NSDictionary alloc]initWithObjectsAndKeys:@"郑海峰",@"name",@"男",@"sex", nil nil];  
  28.     NSDictionary *dic33=[[NSDictionary alloc]initWithObjectsAndKeys:@"王重阳",@"name",@"男",@"sex", nil nil];  
  29.     NSDictionary *dic34=[[NSDictionary alloc]initWithObjectsAndKeys:@"丘处机",@"name",@"男",@"sex", nil nil];  
  30.     NSDictionary *dic35=[[NSDictionary alloc]initWithObjectsAndKeys:@"吕娜",@"name",@"男",@"sex", nil nil];  
  31.     NSDictionary *dic36=[[NSDictionary alloc]initWithObjectsAndKeys:@"郭金明",@"name",@"男",@"sex", nil nil];  
  32.       
  33.     friendstravelArray=[[NSArray alloc]initWithObjects:dic31,dic32,dic33,dic34,dic35,dic36, nil nil];  
  34.       
  35.     NSDictionary *dic41=[[NSDictionary alloc]initWithObjectsAndKeys:@"李晓峰",@"name",@"男",@"sex", nil nil];  
  36.     NSDictionary *dic42=[[NSDictionary alloc]initWithObjectsAndKeys:@"王蒙",@"name",@"男",@"sex", nil nil];  
  37.     NSDictionary *dic43=[[NSDictionary alloc]initWithObjectsAndKeys:@"李建",@"name",@"男",@"sex", nil nil];  
  38.       
  39.     xianFriendsArray=[[NSArray alloc]initWithObjects:dic41,dic42,dic43, nil nil];  
  40.       
  41.     NSDictionary *dic51=[[NSDictionary alloc]initWithObjectsAndKeys:@"胡雪",@"name",@"男",@"sex", nil nil];  
  42.     NSDictionary *dic52=[[NSDictionary alloc]initWithObjectsAndKeys:@"张小欢",@"name",@"男",@"sex", nil nil];  
  43.     NSDictionary *dic53=[[NSDictionary alloc]initWithObjectsAndKeys:@"刘丽丽",@"name",@"男",@"sex", nil nil];  
  44.       
  45.     strangersArray=[[NSArray alloc]initWithObjects:dic51,dic52,dic53, nil nil];  
  46.       
  47.     dataDic=[[NSDictionary alloc]initWithObjectsAndKeys:friendsArray,[titleArray objectAtIndex:0],familyArray,[titleArray objectAtIndex:1],schoolmateArray,[titleArray objectAtIndex:2],friendstravelArray,[titleArray objectAtIndex:3],xianFriendsArray,[titleArray objectAtIndex:4], strangersArray,[titleArray objectAtIndex:5], nil nil];  
  48.       
  49.       
  50. }  


实现以下几个代理方法


[objc]  view plain copy
  1. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  2. {  
  3.       
  4.     NSString *str=[titleArray objectAtIndex:indexPath.section];  
  5.       
  6.     NSArray *arr=[dataDic objectForKey:str];  
  7.       
  8.     static NSString *CellIdentifier = @"MainCell";  
  9.       
  10.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];  
  11.     cell=nil;  
  12.     if (cell == nil) {  
  13.         cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];  
  14.           
  15.         cell.selectionStyle = UITableViewCellSelectionStyleGray;  
  16.     }  
  17.       
  18.       
  19.     UILabel *userLabel=[[UILabel alloc]initWithFrame:CGRectMake(305, SCREEN_WIDTH, 30)];  
  20.     userLabel.text=[[arr objectAtIndex:indexPath.row] valueForKey:@"name"];  
  21.     [cell.contentView addSubview:userLabel];  
  22.     return cell;  
  23.       
  24. }  


到目前位置 效果如下:



这节我们先讲到这里,下节我们将实现好友列表的丰富(包括头像,签名等)



如果有问题可加qq讨论

苹果开发群 :414319235  欢迎加入



版权声明:本文为博主原创文章,未经博主允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值