tableView练习 -- QQ好友列表
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好友列表相关推荐
- iOS TableView实现QQ好友列表(二)
上节:iOS TableView实现QQ好友列表(一) http://blog.csdn.net/lwjok2007/article/details/46534123 上一节实现了简单的好友列表,但是 ...
- iOS TableView实现QQ好友列表(三)
上节我们讲到如何展示好友信息 iOS TableView实现QQ好友列表(二) http://blog.csdn.net/lwjok2007/article/details/46549111 接下来我 ...
- TableView实现QQ好友列表效果
概述:本文是黑马程序员UI视频教程第九天,QQ好友列表案例的总结 该案例中主要涉及的知识点有:改变图片在UIButton中的平铺方式.UITableViewHeaderFooterView.设置按钮中 ...
- iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
iOS开发UI篇-使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...
- iOS之仿QQ好友列表展开收缩效果的实现
使用UICollectionView实现 思路 很明显整体它是一个列表,它的分组是一个列表,它里面的好友列表也是一个列表,所以就可以使用组头来设置分组列表,使用cell设置好友列表: 当点击组头的时候 ...
- iOS开发-QQ好友列表展示
那么今天给同学写了一个QQ好友列表展示的Demo,涉及很多的内部细节以及高度封装自定义的cell和自定义view,那么内部所用知识和细节全部呈现在代码和注释中,那么废话不多说直接上代码,先看效果图! ...
- html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)
JS仿QQ好友列表展开.收缩功能(第一篇) 发布时间:2020-10-17 14:20:03 来源:脚本之家 阅读:96 作者:erdouzhang 效果图如下所示: html: 我的好友 张三 李四 ...
- Android开发学习之QQ好友列表的实现
今天想和大家分享的是QQ好友列表的实现,我们知道,在默认情况下,QQ好友列表是处于收缩状态的,此时,列表显示好友分组名称.当我们单击分组时,列表处于展开状态,列表显示该分组下的项目.当再次单击分组时, ...
- python获取qq好友ip_使用Python模拟登录QQ邮箱获取QQ好友列表
最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表. 实现方式: 通过google一搜,实现的方式大 ...
最新文章
- ACwing 2. 01背包问题(DP)
- 使用randomaccessfile类将一个文本文件中的内容逆序输出_Java 中比较常用的知识点:I/O 总结...
- 应用交付工程师Troubleshooting经验分享2
- asp.net抓取网页html源代码失败 只因UserAgent作怪
- /usr/bin/env: escript: No such file or directory的解决办法
- PPT 2013 提升演讲逼格 视频教程
- 第3章 Hive数据类型
- kotlin java 知乎_GitHub - luciferldy/ZhihuDailyKotlin: 这是是一个使用 Kotlin 开发的知乎日报客户端...
- bixby怎么编程_三星Galaxy S20:如何完全禁用Bixby
- Mysql 认证步骤
- 科创板IPO上市条件
- 【图像分割】基于脉冲耦合神经网络实现图像分割附matlab代码
- PHP(时间)计算本月本周下月下周
- canvas实现画板工具
- 跨时钟域信号处理---脉冲同步器详解
- 分享几款有意思的阅读工具
- Java其实很简单,就这么点东西,搞来搞去十几年,网友:坐等被喷
- Linux学习笔记——Linux、命令 01
- Android 修改浏览器默认主页及书签
- c++ 部落(在一个社区里,每个人都有自己的小圈子)