LWTViewController.h

//
//  LWTViewController.h
//  tableView练习 -- QQ好友列表
//
//  Created by apple on 14-6-1.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#import <UIKit/UIKit.h>@interface LWTViewController : UITableViewController@end

View Code

LWTViewController.m

  1 //
  2 //  LWTViewController.m
  3 //  tableView练习 -- QQ好友列表
  4 //
  5 //  Created by apple on 14-6-1.
  6 //  Copyright (c) 2014年 lwt. All rights reserved.
  7 //
  8
  9 #import "LWTViewController.h"
 10 #import "LWTQQGroupModel.h"
 11 #import "LWTQQFriendModel.h"
 12 #import "LWTQQFriendCell.h"
 13 #import "LWTHeaderView.h"
 14
 15 @interface LWTViewController () <LWTHeaderViewDelegate>
 16 // 保存所有的分组数据
 17 @property (nonatomic, strong) NSArray *qqGroups;
 18
 19 @end
 20
 21 @implementation LWTViewController
 22
 23 #pragma mark - 懒加载
 24 - (NSArray *)qqGroups
 25 {
 26     if (nil == _qqGroups) {
 27         NSString *path = [[NSBundle mainBundle] pathForResource:@"friends.plist" ofType:nil];
 28         NSArray *qqGroupsArray = [NSArray arrayWithContentsOfFile:path];
 29
 30         NSMutableArray *models = [NSMutableArray arrayWithCapacity:qqGroupsArray.count];
 31
 32         for (NSDictionary *dict in qqGroupsArray) {
 33             LWTQQGroupModel *qqGroup = [LWTQQGroupModel qqGroupWithDict:dict];
 34             [models addObject:qqGroup];
 35         }
 36         _qqGroups = models;
 37     }
 38
 39     return _qqGroups;
 40 }
 41
 42 - (void)viewDidLoad
 43 {
 44     [super viewDidLoad];
 45     // Do any additional setup after loading the view, typically from a nib.
 46 }
 47
 48 #pragma mark - UITableViewDataSource
 49 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 50 {
 51     return self.qqGroups.count;
 52 }
 53
 54 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 55 {
 56     // 取出对应的组模型
 57     LWTQQGroupModel *qqGroup = self.qqGroups[section];
 58     if (qqGroup.isOpen) {
 59         // 展开
 60         return qqGroup.friends.count;
 61     }else
 62     {
 63         // 代表要合拢
 64         return 0;
 65     }
 66
 67 }
 68
 69 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 70 {
 71      // 创建cell
 72     LWTQQFriendCell *cell = [LWTQQFriendCell cellWithTableView:tableView];
 73     // 取出对应的组模型
 74     LWTQQGroupModel *qqGroup = self.qqGroups[indexPath.section];
 75     LWTQQFriendModel *qqFriend = qqGroup.friends[indexPath.row];
 76     // 传递模型
 77     cell.qqFriend = qqFriend;
 78     // 返回cell
 79     return cell;
 80 }
 81
 82 #pragma mark - UITableViewDelegate
 83 - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 84 {
 85     // 创建头部视图, 头部视图有默认的宽高,是系统自动设置
 86     LWTHeaderView *headerView = [LWTHeaderView headerViewWithTableView:tableView];
 87     // 取出对应的组模型
 88     LWTQQGroupModel *qqGroup = self.qqGroups[section];
 89     // 传递模型
 90     headerView.qqCroup = qqGroup;
 91     // 设置当前控制器为代理
 92     headerView.delegate = self;
 93     // 返回头部视图
 94     return headerView;
 95 }
 96 // 设置分组头部标题的高度
 97 - (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 98 {
 99     return 44;
100 }
101
102 #pragma mark - LWTHeaderViewDelegate
103
104 - (void)headerViewDidClickHeaderView:(LWTHeaderView *)headerView
105 {
106     // 重新调用数据源的方法加载数据
107     [self.tableView reloadData];
108 }
109
110 - (BOOL)prefersStatusBarHidden
111 {
112     return YES;
113 }
114 @end

View Code

LWTQQGroupModel.h

 1 //
 2 //  LWTQQGroupModel.h
 3 //  tableView练习 -- QQ好友列表
 4 //
 5 //  Created by apple on 14-6-1.
 6 //  Copyright (c) 2014年 lwt. All rights reserved.
 7 //
 8
 9 #import <Foundation/Foundation.h>
10 #import "LWTGlobal.h"
11
12 @interface LWTQQGroupModel : NSObject
13 /// 存放当前组所有的好友信息(好友模型)
14 @property (nonatomic, strong) NSArray *friends;
15 // 分组名称
16 @property (nonatomic, copy) NSString *name;
17 // 在线人数
18 @property (nonatomic, assign) int online;
19 // 记录当前组是否需要打开
20 @property (nonatomic, assign, getter = isOpen) BOOL open;
21
22
23 LWTInitH(qqGroup)
24
25 @end

View Code

LWTQQGroupModel.m

 1 //
 2 //  LWTQQGroupModel.m
 3 //  tableView练习 -- QQ好友列表
 4 //
 5 //  Created by apple on 14-6-1.
 6 //  Copyright (c) 2014年 lwt. All rights reserved.
 7 //
 8
 9 #import "LWTQQGroupModel.h"
10 #import "LWTQQFriendModel.h"
11
12 @implementation LWTQQGroupModel
13
14 - (instancetype)initWithDict:(NSDictionary *)dict
15 {
16     if (self = [super init]) {
17         // 将字典转换成模型
18         [self setValuesForKeysWithDictionary:dict];
19         // 定义数组保存转换后的模型
20         NSMutableArray *models = [NSMutableArray arrayWithCapacity:self.friends.count];
21         // 特殊处理friends中的数据
22         for (NSDictionary *dict in self.friends) {
23             // 转换为模型
24             [models addObject:[LWTQQFriendModel qqFriendWithDict:dict]];
25         }
26         self.friends = models;
27     }
28
29     return self;
30 }
31
32 + (instancetype)qqGroupWithDict:(NSDictionary *)dict
33 {
34     return [[self alloc] initWithDict:dict];
35 }
36
37 @end

View Code

LWTQQFriendModel.h

//
//  LWTQQFriendModel.h
//  tableView练习 -- QQ好友列表
//
//  Created by apple on 14-6-1.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "LWTGlobal.h"@interface LWTQQFriendModel : NSObject// 头像
@property (nonatomic, copy) NSString *icon;
// 简介
@property (nonatomic, copy) NSString *intro;
// 昵称
@property (nonatomic, copy) NSString *name;
// 是否是vip
@property (nonatomic, assign, getter = isVip) BOOL vip;LWTInitH(qqFriend)@end

View Code

LWTQQFriendModel.m

//
//  LWTQQFriendModel.m
//  tableView练习 -- QQ好友列表
//
//  Created by apple on 14-6-1.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#import "LWTQQFriendModel.h"@implementation LWTQQFriendModelLWTInitM(qqFriend)@end

View Code

LWTQQFriendCell.h

//
//  LWTQQFriendCell.h
//  tableView练习 -- QQ好友列表
//
//  Created by apple on 14-6-1.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#import <UIKit/UIKit.h>
@class LWTQQFriendModel;@interface LWTQQFriendCell : UITableViewCell@property (nonatomic, strong) LWTQQFriendModel *qqFriend;+ (instancetype) cellWithTableView : (UITableView *)tableView;@end

View Code

LWTQQFriendCell.m

//
//  LWTQQFriendCell.m
//  tableView练习 -- QQ好友列表
//
//  Created by apple on 14-6-1.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#import "LWTQQFriendCell.h"
#import "LWTQQFriendModel.h"@implementation LWTQQFriendCell+ (instancetype)cellWithTableView:(UITableView *)tableView
{static NSString *identifier = @"qqFriend";LWTQQFriendCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];if ( nil == cell) {cell = [[LWTQQFriendCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];}return cell;
}- (void)setQqFriend:(LWTQQFriendModel *)qqFriend
{_qqFriend = qqFriend;// 设置头像self.imageView.image = [UIImage imageNamed:qqFriend.icon];// 设置昵称self.textLabel.text = qqFriend.name;// 设置简介self.detailTextLabel.text = qqFriend.intro;// 判断是否是vipif (qqFriend.isVip) {self.textLabel.textColor = [UIColor redColor];}else{self.textLabel.textColor = [UIColor blackColor];}
}@end

View Code

LWTHeaderView.h

 1 //
 2 //  LWTHeaderView.h
 3 //  tableView练习 -- QQ好友列表
 4 //
 5 //  Created by apple on 14-6-1.
 6 //  Copyright (c) 2014年 lwt. All rights reserved.
 7 //
 8
 9 #import <UIKit/UIKit.h>
10 @class LWTQQGroupModel,LWTHeaderView;
11 // 创建协议
12 @protocol LWTHeaderViewDelegate <NSObject>
13
14 @optional
15 - (void)headerViewDidClickHeaderView:(LWTHeaderView *)headerView;
16
17 @end
18
19
20 @interface LWTHeaderView : UITableViewHeaderFooterView
21
22 + (instancetype)headerViewWithTableView : (UITableView *)tableView;
23 // 分组模型
24 @property (nonatomic, strong) LWTQQGroupModel *qqCroup;
25 // 代理
26 @property (nonatomic, strong) id<LWTHeaderViewDelegate> delegate;
27
28 @end

View Code

LWTHeaderView.m

  1 //
  2 //  LWTHeaderView.m
  3 //  tableView练习 -- QQ好友列表
  4 //
  5 //  Created by apple on 14-6-1.
  6 //  Copyright (c) 2014年 lwt. All rights reserved.
  7 //
  8
  9 #import "LWTHeaderView.h"
 10 #import "LWTQQGroupModel.h"
 11
 12 @interface LWTHeaderView ()
 13
 14 @property (nonatomic, weak) UIButton *btn;
 15 @property (nonatomic, weak) UILabel *label;
 16
 17 @end
 18
 19 @implementation LWTHeaderView
 20
 21 + (instancetype)headerViewWithTableView:(UITableView *)tableView
 22 {
 23     static NSString *identifier = @"header";
 24     // 创建头部视图
 25     LWTHeaderView *headerView = [tableView dequeueReusableCellWithIdentifier:identifier];
 26     if (nil == headerView) {
 27         headerView = [[LWTHeaderView alloc] initWithReuseIdentifier:identifier];
 28     }
 29     return headerView;
 30 }
 31
 32 - (instancetype) initWithReuseIdentifier:(NSString *)reuseIdentifier
 33 {
 34     self = [super initWithReuseIdentifier:reuseIdentifier];
 35     if (self) {
 36         /**
 37          *  添加子控件
 38          */
 39
 40         // 添加按钮
 41         UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
 42
 43         // 设置按钮的背景图片
 44         [btn setBackgroundImage:[UIImage imageNamed:@"buddy_header_bg"] forState:UIControlStateNormal];
 45         [btn setBackgroundImage:[UIImage imageNamed:@"buddy_header_bg_highlighted"] forState:UIControlStateHighlighted];
 46
 47         // 设置按钮上的尖尖图片
 48         [btn setImage:[UIImage imageNamed:@"buddy_header_arrow"] forState:UIControlStateNormal];
 49         // 设置按钮的内边距
 50         btn.contentEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
 51         // 设置文字的内边距
 52         btn.titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
 53         // 设置按钮的内容左对齐
 54         btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
 55         // 设置字体颜色
 56         [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
 57         // 设置btn图片不填充整个imageView
 58         btn.imageView.contentMode = UIViewContentModeCenter;
 59         // 设置图片超出部分不隐藏
 60         btn.imageView.clipsToBounds = NO;
 61
 62         // 设置监听点击事件
 63         [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
 64
 65         [self addSubview:btn];
 66         self.btn =btn;
 67
 68
 69         // 添加label
 70         UILabel *label = [[UILabel alloc] init];
 71         // 设置文本右对齐
 72         label.textAlignment = NSTextAlignmentRight;
 73         // 设置文本颜色
 74         label.textColor = [UIColor grayColor];
 75         [self addSubview:label];
 76         self.label = label;
 77     }
 78     return self;
 79 }
 80
 81 /**
 82  *  该方法在控件的frame被改变的时候就会调用
 83  *  该方法一般用于调整子控件的位置
 84  */
 85 - (void)layoutSubviews
 86 {
 87     [super layoutSubviews];
 88     // 按钮的位置
 89     self.btn.frame = self.bounds;
 90     // 文本的位置
 91     CGFloat padding = 10.f;
 92
 93     CGFloat labelY = 0.f;
 94     CGFloat labelW = 100.f;
 95     CGFloat labelH = self.bounds.size.height;
 96     CGFloat labelX = self.bounds.size.width - labelW - padding;
 97
 98     self.label.frame = CGRectMake(labelX, labelY, labelW, labelH);
 99 }
100
101 - (void)setQqCroup:(LWTQQGroupModel *)qqCroup
102 {
103     _qqCroup = qqCroup;
104     // 按钮文字
105     [self.btn setTitle:qqCroup.name forState:UIControlStateNormal];
106
107     NSString *labelText = [NSString stringWithFormat:@"%d/%d", qqCroup.online, qqCroup.friends.count];
108
109     self.label.text = labelText;
110
111 }
112
113 - (void) btnClick : (UIButton *)button
114 {
115     // 修改组模型的isOpen属性
116     self.qqCroup.open = !(self.qqCroup.open);
117     // 刷新表格(通知代理)
118     if ([self.delegate respondsToSelector:@selector(headerViewDidClickHeaderView:)]) {
119         [self.delegate headerViewDidClickHeaderView:self];
120     }
121 }
122
123 #pragma mark - 当一个控件被添加到其它视图上的时候会调用以下方法
124 // 已经被添加到父视图上的时候会调用
125 - (void)didMoveToSuperview
126 {
127     // 在这个方法中就快要拿到最新的被添加到tableview上的头部视图修改它的图片
128     if (self.qqCroup.isOpen) {
129         self.btn.imageView.transform = CGAffineTransformMakeRotation(M_PI_2);
130     }
131
132 }
133
134 @end

View Code

LWTGlobal.h

//
//  LWTGlobal.h
//  tableView练习--英雄联盟英雄介绍
//
//  Created by apple on 14-5-27.
//  Copyright (c) 2014年 lwt. All rights reserved.
//

#ifndef tableView_____________LWTGlobal_h
#define tableView_____________LWTGlobal_h#define LWTInitH(name)\
- (instancetype)initWithDict : (NSDictionary *)dict; \
+ (instancetype)name##WithDict : (NSDictionary *)dict;#define LWTInitM(name) \
- (instancetype)initWithDict:(NSDictionary *)dict\
{\self = [super init];\if (self) {\[self setValuesForKeysWithDictionary:dict];\}\return self;\
}\
+ (instancetype)name##WithDict:(NSDictionary *)dict\
{\return [[self alloc] initWithDict:dict];\
}#endif

View Code

friends.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array><dict><key>friends</key><array><dict><key>icon</key><string>001.png</string><key>intro</key><string>我的好友好友-0的个性签名就是这么拽</string><key>name</key><string>我的好友好友-0</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>我的好友好友-1的个性签名就是这么拽</string><key>name</key><string>我的好友好友-1</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>我的好友好友-2的个性签名就是这么拽</string><key>name</key><string>我的好友好友-2</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>我的好友好友-3的个性签名就是这么拽</string><key>name</key><string>我的好友好友-3</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>我的好友好友-4的个性签名就是这么拽</string><key>name</key><string>我的好友好友-4</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>我的好友好友-5的个性签名就是这么拽</string><key>name</key><string>我的好友好友-5</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>我的好友好友-6的个性签名就是这么拽</string><key>name</key><string>我的好友好友-6</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>我的好友好友-7的个性签名就是这么拽</string><key>name</key><string>我的好友好友-7</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>我的好友好友-8的个性签名就是这么拽</string><key>name</key><string>我的好友好友-8</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>我的好友好友-9的个性签名就是这么拽</string><key>name</key><string>我的好友好友-9</string><key>vip</key><integer>0</integer></dict></array><key>name</key><string>我的好友</string><key>online</key><integer>3</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>002.png</string><key>intro</key><string>小学好友-0的个性签名就是这么拽</string><key>name</key><string>小学好友-0</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>小学好友-1的个性签名就是这么拽</string><key>name</key><string>小学好友-1</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>小学好友-2的个性签名就是这么拽</string><key>name</key><string>小学好友-2</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>009.png</string><key>intro</key><string>小学好友-3的个性签名就是这么拽</string><key>name</key><string>小学好友-3</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>小学好友-4的个性签名就是这么拽</string><key>name</key><string>小学好友-4</string><key>vip</key><integer>1</integer></dict></array><key>name</key><string>小学</string><key>online</key><integer>0</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>001.png</string><key>intro</key><string>初中好友-0的个性签名就是这么拽</string><key>name</key><string>初中好友-0</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>初中好友-1的个性签名就是这么拽</string><key>name</key><string>初中好友-1</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>初中好友-2的个性签名就是这么拽</string><key>name</key><string>初中好友-2</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>初中好友-3的个性签名就是这么拽</string><key>name</key><string>初中好友-3</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>初中好友-4的个性签名就是这么拽</string><key>name</key><string>初中好友-4</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>009.png</string><key>intro</key><string>初中好友-5的个性签名就是这么拽</string><key>name</key><string>初中好友-5</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>009.png</string><key>intro</key><string>初中好友-6的个性签名就是这么拽</string><key>name</key><string>初中好友-6</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>初中好友-7的个性签名就是这么拽</string><key>name</key><string>初中好友-7</string><key>vip</key><integer>0</integer></dict></array><key>name</key><string>初中</string><key>online</key><integer>1</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>009.png</string><key>intro</key><string>高中好友-0的个性签名就是这么拽</string><key>name</key><string>高中好友-0</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>高中好友-1的个性签名就是这么拽</string><key>name</key><string>高中好友-1</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>高中好友-2的个性签名就是这么拽</string><key>name</key><string>高中好友-2</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>高中好友-3的个性签名就是这么拽</string><key>name</key><string>高中好友-3</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>高中好友-4的个性签名就是这么拽</string><key>name</key><string>高中好友-4</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>高中好友-5的个性签名就是这么拽</string><key>name</key><string>高中好友-5</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>高中好友-6的个性签名就是这么拽</string><key>name</key><string>高中好友-6</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>高中好友-7的个性签名就是这么拽</string><key>name</key><string>高中好友-7</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>高中好友-8的个性签名就是这么拽</string><key>name</key><string>高中好友-8</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>高中好友-9的个性签名就是这么拽</string><key>name</key><string>高中好友-9</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>高中好友-10的个性签名就是这么拽</string><key>name</key><string>高中好友-10</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>009.png</string><key>intro</key><string>高中好友-11的个性签名就是这么拽</string><key>name</key><string>高中好友-11</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>高中好友-12的个性签名就是这么拽</string><key>name</key><string>高中好友-12</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>高中好友-13的个性签名就是这么拽</string><key>name</key><string>高中好友-13</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>高中好友-14的个性签名就是这么拽</string><key>name</key><string>高中好友-14</string><key>vip</key><integer>0</integer></dict></array><key>name</key><string>高中</string><key>online</key><integer>11</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>008.png</string><key>intro</key><string>大学好友-0的个性签名就是这么拽</string><key>name</key><string>大学好友-0</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>大学好友-1的个性签名就是这么拽</string><key>name</key><string>大学好友-1</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>009.png</string><key>intro</key><string>大学好友-2的个性签名就是这么拽</string><key>name</key><string>大学好友-2</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>大学好友-3的个性签名就是这么拽</string><key>name</key><string>大学好友-3</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>大学好友-4的个性签名就是这么拽</string><key>name</key><string>大学好友-4</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>大学好友-5的个性签名就是这么拽</string><key>name</key><string>大学好友-5</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>大学好友-6的个性签名就是这么拽</string><key>name</key><string>大学好友-6</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>大学好友-7的个性签名就是这么拽</string><key>name</key><string>大学好友-7</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>大学好友-8的个性签名就是这么拽</string><key>name</key><string>大学好友-8</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>大学好友-9的个性签名就是这么拽</string><key>name</key><string>大学好友-9</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>大学好友-10的个性签名就是这么拽</string><key>name</key><string>大学好友-10</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>大学好友-11的个性签名就是这么拽</string><key>name</key><string>大学好友-11</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>大学好友-12的个性签名就是这么拽</string><key>name</key><string>大学好友-12</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>大学好友-13的个性签名就是这么拽</string><key>name</key><string>大学好友-13</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>大学好友-14的个性签名就是这么拽</string><key>name</key><string>大学好友-14</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>大学好友-15的个性签名就是这么拽</string><key>name</key><string>大学好友-15</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>大学好友-16的个性签名就是这么拽</string><key>name</key><string>大学好友-16</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>大学好友-17的个性签名就是这么拽</string><key>name</key><string>大学好友-17</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>大学好友-18的个性签名就是这么拽</string><key>name</key><string>大学好友-18</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>大学好友-19的个性签名就是这么拽</string><key>name</key><string>大学好友-19</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>大学好友-20的个性签名就是这么拽</string><key>name</key><string>大学好友-20</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>大学好友-21的个性签名就是这么拽</string><key>name</key><string>大学好友-21</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>大学好友-22的个性签名就是这么拽</string><key>name</key><string>大学好友-22</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>大学好友-23的个性签名就是这么拽</string><key>name</key><string>大学好友-23</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>大学好友-24的个性签名就是这么拽</string><key>name</key><string>大学好友-24</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>大学好友-25的个性签名就是这么拽</string><key>name</key><string>大学好友-25</string><key>vip</key><integer>0</integer></dict></array><key>name</key><string>大学</string><key>online</key><integer>19</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>009.png</string><key>intro</key><string>亲戚好友-0的个性签名就是这么拽</string><key>name</key><string>亲戚好友-0</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>亲戚好友-1的个性签名就是这么拽</string><key>name</key><string>亲戚好友-1</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>亲戚好友-2的个性签名就是这么拽</string><key>name</key><string>亲戚好友-2</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>亲戚好友-3的个性签名就是这么拽</string><key>name</key><string>亲戚好友-3</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>亲戚好友-4的个性签名就是这么拽</string><key>name</key><string>亲戚好友-4</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>亲戚好友-5的个性签名就是这么拽</string><key>name</key><string>亲戚好友-5</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>亲戚好友-6的个性签名就是这么拽</string><key>name</key><string>亲戚好友-6</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>亲戚好友-7的个性签名就是这么拽</string><key>name</key><string>亲戚好友-7</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>亲戚好友-8的个性签名就是这么拽</string><key>name</key><string>亲戚好友-8</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>亲戚好友-9的个性签名就是这么拽</string><key>name</key><string>亲戚好友-9</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>亲戚好友-10的个性签名就是这么拽</string><key>name</key><string>亲戚好友-10</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>亲戚好友-11的个性签名就是这么拽</string><key>name</key><string>亲戚好友-11</string><key>vip</key><integer>0</integer></dict></array><key>name</key><string>亲戚</string><key>online</key><integer>0</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>009.png</string><key>intro</key><string>欠我钱的好友-0的个性签名就是这么拽</string><key>name</key><string>欠我钱的好友-0</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>欠我钱的好友-1的个性签名就是这么拽</string><key>name</key><string>欠我钱的好友-1</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>欠我钱的好友-2的个性签名就是这么拽</string><key>name</key><string>欠我钱的好友-2</string><key>vip</key><integer>0</integer></dict></array><key>name</key><string>欠我钱的</string><key>online</key><integer>3</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>002.png</string><key>intro</key><string>蛋疼的好友-0的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-0</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>蛋疼的好友-1的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-1</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>蛋疼的好友-2的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-2</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>蛋疼的好友-3的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-3</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>蛋疼的好友-4的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-4</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>蛋疼的好友-5的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-5</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>蛋疼的好友-6的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-6</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>蛋疼的好友-7的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-7</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>蛋疼的好友-8的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-8</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>蛋疼的好友-9的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-9</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>蛋疼的好友-10的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-10</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>蛋疼的好友-11的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-11</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>006.png</string><key>intro</key><string>蛋疼的好友-12的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-12</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>蛋疼的好友-13的个性签名就是这么拽</string><key>name</key><string>蛋疼的好友-13</string><key>vip</key><integer>1</integer></dict></array><key>name</key><string>蛋疼的</string><key>online</key><integer>6</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>001.png</string><key>intro</key><string>有病的好友-0的个性签名就是这么拽</string><key>name</key><string>有病的好友-0</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>有病的好友-1的个性签名就是这么拽</string><key>name</key><string>有病的好友-1</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>有病的好友-2的个性签名就是这么拽</string><key>name</key><string>有病的好友-2</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>002.png</string><key>intro</key><string>有病的好友-3的个性签名就是这么拽</string><key>name</key><string>有病的好友-3</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>有病的好友-4的个性签名就是这么拽</string><key>name</key><string>有病的好友-4</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>有病的好友-5的个性签名就是这么拽</string><key>name</key><string>有病的好友-5</string><key>vip</key><integer>1</integer></dict></array><key>name</key><string>有病的</string><key>online</key><integer>6</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>004.png</string><key>intro</key><string>傻B好友-0的个性签名就是这么拽</string><key>name</key><string>傻B好友-0</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>003.png</string><key>intro</key><string>傻B好友-1的个性签名就是这么拽</string><key>name</key><string>傻B好友-1</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>傻B好友-2的个性签名就是这么拽</string><key>name</key><string>傻B好友-2</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>001.png</string><key>intro</key><string>傻B好友-3的个性签名就是这么拽</string><key>name</key><string>傻B好友-3</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>009.png</string><key>intro</key><string>傻B好友-4的个性签名就是这么拽</string><key>name</key><string>傻B好友-4</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>007.png</string><key>intro</key><string>傻B好友-5的个性签名就是这么拽</string><key>name</key><string>傻B好友-5</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>傻B好友-6的个性签名就是这么拽</string><key>name</key><string>傻B好友-6</string><key>vip</key><integer>1</integer></dict></array><key>name</key><string>傻B</string><key>online</key><integer>5</integer></dict><dict><key>friends</key><array><dict><key>icon</key><string>001.png</string><key>intro</key><string>2B好友-0的个性签名就是这么拽</string><key>name</key><string>2B好友-0</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>009.png</string><key>intro</key><string>2B好友-1的个性签名就是这么拽</string><key>name</key><string>2B好友-1</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>008.png</string><key>intro</key><string>2B好友-2的个性签名就是这么拽</string><key>name</key><string>2B好友-2</string><key>vip</key><integer>1</integer></dict><dict><key>icon</key><string>004.png</string><key>intro</key><string>2B好友-3的个性签名就是这么拽</string><key>name</key><string>2B好友-3</string><key>vip</key><integer>0</integer></dict><dict><key>icon</key><string>005.png</string><key>intro</key><string>2B好友-4的个性签名就是这么拽</string><key>name</key><string>2B好友-4</string><key>vip</key><integer>0</integer></dict></array><key>name</key><string>2B</string><key>online</key><integer>2</integer></dict>
</array>
</plist>

View Code

转载于:https://www.cnblogs.com/wentianblog/p/3763567.html

tableView练习 -- QQ好友列表相关推荐

  1. iOS TableView实现QQ好友列表(二)

    上节:iOS TableView实现QQ好友列表(一) http://blog.csdn.net/lwjok2007/article/details/46534123 上一节实现了简单的好友列表,但是 ...

  2. iOS TableView实现QQ好友列表(三)

    上节我们讲到如何展示好友信息 iOS TableView实现QQ好友列表(二) http://blog.csdn.net/lwjok2007/article/details/46549111 接下来我 ...

  3. TableView实现QQ好友列表效果

    概述:本文是黑马程序员UI视频教程第九天,QQ好友列表案例的总结 该案例中主要涉及的知识点有:改变图片在UIButton中的平铺方式.UITableViewHeaderFooterView.设置按钮中 ...

  4. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇-使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  5. iOS之仿QQ好友列表展开收缩效果的实现

    使用UICollectionView实现 思路 很明显整体它是一个列表,它的分组是一个列表,它里面的好友列表也是一个列表,所以就可以使用组头来设置分组列表,使用cell设置好友列表: 当点击组头的时候 ...

  6. iOS开发-QQ好友列表展示

    那么今天给同学写了一个QQ好友列表展示的Demo,涉及很多的内部细节以及高度封装自定义的cell和自定义view,那么内部所用知识和细节全部呈现在代码和注释中,那么废话不多说直接上代码,先看效果图! ...

  7. html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)

    JS仿QQ好友列表展开.收缩功能(第一篇) 发布时间:2020-10-17 14:20:03 来源:脚本之家 阅读:96 作者:erdouzhang 效果图如下所示: html: 我的好友 张三 李四 ...

  8. Android开发学习之QQ好友列表的实现

    今天想和大家分享的是QQ好友列表的实现,我们知道,在默认情况下,QQ好友列表是处于收缩状态的,此时,列表显示好友分组名称.当我们单击分组时,列表处于展开状态,列表显示该分组下的项目.当再次单击分组时, ...

  9. python获取qq好友ip_使用Python模拟登录QQ邮箱获取QQ好友列表

    最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表. 实现方式: 通过google一搜,实现的方式大 ...

最新文章

  1. ACwing 2. 01背包问题(DP)
  2. 使用randomaccessfile类将一个文本文件中的内容逆序输出_Java 中比较常用的知识点:I/O 总结...
  3. 应用交付工程师Troubleshooting经验分享2
  4. asp.net抓取网页html源代码失败 只因UserAgent作怪
  5. /usr/bin/env: escript: No such file or directory的解决办法
  6. PPT 2013 提升演讲逼格 视频教程
  7. 第3章 Hive数据类型
  8. kotlin java 知乎_GitHub - luciferldy/ZhihuDailyKotlin: 这是是一个使用 Kotlin 开发的知乎日报客户端...
  9. bixby怎么编程_三星Galaxy S20:如何完全禁用Bixby
  10. Mysql 认证步骤
  11. 科创板IPO上市条件
  12. 【图像分割】基于脉冲耦合神经网络实现图像分割附matlab代码
  13. PHP(时间)计算本月本周下月下周
  14. canvas实现画板工具
  15. 跨时钟域信号处理---脉冲同步器详解
  16. 分享几款有意思的阅读工具
  17. Java其实很简单,就这么点东西,搞来搞去十几年,网友:坐等被喷
  18. Linux学习笔记——Linux、命令 01
  19. Android 修改浏览器默认主页及书签
  20. c++ 部落(在一个社区里,每个人都有自己的小圈子)

热门文章

  1. Google Gson 使用简介
  2. PHP可以重新定义已经存在的函数的类库patchwork
  3. 利用jquery getJSON 调用ashx实现ajax调用
  4. HTML DOM教程 22-HTML DOM Form 对象
  5. Linq to Sql 动态条件另类实现方法
  6. 计算机常用英语(2)
  7. Domino+Qucikplace+Sametime构建企业办公平台图文攻略(四)
  8. 基于java的WebGIS服务器的设计
  9. Chinaren,逐渐变为垃圾了。
  10. 75的写的自己情感经历(转贴自天涯社区)