50.小项目:QQ好友列表 C部分
---------- ViewController.m ----------
#import "ViewController.h"
#import "CZFriendGroup.h"
#import "CZFriendCell.h"
#import "CZGroupHeader.h"
@interfaceViewController () <CZGroupHeaderDelegate>
@property (strong, nonatomic) NSArray *groups;
@end
@implementation ViewController
- (void)viewDidLoad
{
[superviewDidLoad];
self.tableView.rowHeight = 50;
self.tableView.sectionHeaderHeight = 44;
}
- (BOOL)prefersStatusBarHidden
{
returnYES;
}
- (NSArray *)groups
{
if (_groups == nil)
{
NSArray *dictArray = [NSArrayarrayWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"friends.plist"ofType:nil]];
NSMutableArray *groupArray = [NSMutableArrayarray];
for (NSDictionary *dict in dictArray)
{
CZFriendGroup *group = [CZFriendGroup groupWithDict:dict];
[groupArray addObject:group];
}
_groups = groupArray;
}
return_groups;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
returnself.groups.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
CZFriendGroup *group = self.groups[section];
return group.open ? group.friends.count : 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CZFriendCell *cell = [CZFriendCell cellWithTableView:tableView];
CZFriendGroup *group = self.groups[indexPath.section];
cell.friendData = group.friends[indexPath.row];
return cell;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
CZGroupHeader *header = [CZGroupHeader headerWithTableView:tableView];
header.delegate = self;
header.group = self.groups[section];
return header;
}
- (void)groupHeaderClick:(CZGroupHeader *)header
{
[self.tableViewreloadData];
}
@end