1、實現效果數組
2、實現代碼緩存
1.數據模型部分app
YYQQGroupModel.h文件ide
YYQQGroupModel.m文件orm
YYFriendsModel.h文件
YYFriendsModel.m文件
2.視圖部分
YYfriendCell.h文件
YYfriendCell.m文件
//
// YYfriendCell.m
// 02-QQ好友列表(基本數據的加載)
//
// Created by apple on 14-5-31.
// Copyright (c) 2014年 itcase. All rights reserved.
//
#import "YYfriendCell.h"
#import "YYFriendsModel.h"
//私有擴展
@interface YYfriendCell()
@end
@implementation YYfriendCell
+(YYfriendCell *)cellWithTableview:(UITableView *)tableView
{
static NSString *identifier=@"qq";
YYfriendCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier];
if (cell==nil) {
//這裏使用系統自帶的樣式
cell=[[YYfriendCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
NSLog(@"建立一個cell");
}
return cell;
}
-(void)setFriends:(YYFriendsModel *)friends
{
_friends=friends;
//1.設置頭像
self.imageView.image=[UIImage imageNamed:_friends.icon];
//2.設置暱稱
self.textLabel.text=_friends.name;
//3.設置簡介
self.detailTextLabel.text=_friends.intro;
//判斷是不是會員
/**
* 這裏有個注意點,若是不寫else設置爲黑色,會怎麼樣?
*/
if (_friends.isVip) {
[self.textLabel setTextColor:[UIColor redColor]];
}else
{
[self.textLabel setTextColor:[UIColor blackColor]];
}
//調整字體的大小
self.textLabel.font=[UIFont systemFontOfSize:15.f];
self.detailTextLabel.font=[UIFont systemFontOfSize:10.f];
}
@end
YYHeaderView.h文件
YYHeaderView.m文件
3.控制器部分
YYViewController.h文件
YYViewController.m文件
3、代碼說明
1.項目文件結構
2.注意點
(1)調整字體的大小: self.textLabel.font=[UIFont systemFontOfSize:15.f];
(2)-(void)layoutSubviews方法。該方法在控件的frame被改變的時候就會調用,這個方法通常用於調整子控件的位置,注意必定要調用[super layoutSubviews];
(3)但凡在init方法中獲取到的frame都是0;
(4)若是控件不顯示,有如下一些排錯方法
(5)請注意在設置按鈕的文本時,必定要設置按鈕的狀態
(6)調用構造方法時,必定要先初始化父類的方法,先判斷,再進行本身屬性的初始化
1) 已經被添加到父視圖上的時候會調用- (void)didMoveToSuperview
2) 即將被添加到父視圖上的時候會調用- (void)willMoveToSuperview:(UIView *)newSuperview
(8)圖片填充知識
1)設置btn中的圖片不填充整個imageview btn.imageView.contentMode = UIViewContentModeCenter;
2)超出範圍的圖片不要剪切
//btn.imageView.clipsToBounds = NO;
btn.imageView.layer.masksToBounds = NO;
4、補充(代理)
@protocol YYHeaderViewDelegate <NSObject>
-(void)headerViewDidClickHeaderView:(YYHeaderView *)headerView;
@end
//delegate遵照YYHeaderViewDelegate這個協議,可使用協議中的方法
@property(nonatomic,weak)id<YYHeaderViewDelegate> delegate;
@interface YYViewController ()<YYHeaderViewDelegate>
-(void)headerViewDidClickHeaderView:(YYHeaderView *)headerView
{
[self.tableView reloadData];
}
headerview.delegate=self;