//******************************************************************* 05 xib的用法–自定义View
//自定义View xib的用法 (项目名称:设置文件头 滚动广告 五张图片 )
步骤(1)创建 新文件 userInterface 中的 empty 文件 取名CZHeaderView
(2)xib 中加入View 4中属性size取freedom statusBar 取None 5中取大小 W 375 H 200
加入scrollView 到View 中 设置5中 10 10 355 140
加入新View 到主View 中 设置5中 0 160 375 1 //一条线就画好了
加入新View 到主View 中 设置5中 0 200 375 1 //一条线就画好了
加入Label 到主View 中 设置5中 10, 170,100,21 label.text= 猜你喜欢
(3)//封装起来(自定义View)
创建一个类 CZHeaderView 然后继承 UIView//名字最好和xib的取名一样
(4)点击父View 设置自定义类型 中设置3中 Custom Class 中class 设置成 CZHeaderView
(5)连线 option+ Command + 回车 在CZHeaderView.m 中连线
// 手动写入代码
@interface CZHeaderView()
//scrollView连线
@property(weak,nonatomic) IBOutlet UIScrollView *scrollView;
@end
(6)//如何加载 回到 ViewController.m 中
导入头文件 #import"CZHeaderView.h"
-(void)viewDidLoad //原有的代码 这行不需要自己写入
{
self.tableView.tableHeaderView = [CZHeaderView headerView];//手动写入代码
}
(7)//回到 CZHeaderView.h 中
+(instancetype)headerView;//手动写入代码
//回到 CZHeaderView.m 中
//类方法 快速初始化对象
+ (instancetype)headerView
{
CZHeaderView *headerView = [[[NSBundle mainBundle] loadNibNamed:@"CZHeaderView" owner:nil options:nil] lastObject];
return headerView;
}
//当xib中的控件加载完成会调用此方法
- (void)awakeFromNib
{
CGFloat iconW = self.scrollView.frame.size.width;
CGFloat iconH = self.scrollView.frame.size.height;
for (int i = 0; i < 5; i++) {
NSString *imgName = [NSString stringWithFormat:@"ad_%02d",i];
UIImageView *iconView = [[UIImageView alloc] init];
[self.scrollView addSubview:iconView];
iconView.image = [UIImage imageNamed:imgName];
CGFloat iconX = i * iconW;
CGFloat iconY = 0;
iconView.frame = CGRectMake(iconX, iconY, iconW, iconH);
}
self.scrollView.contentSize = CGSizeMake(5 * iconW, 0);
}
//从xib中加载cell的两种方式:
// (1)第一种 (常用)
cell =[[[NSBundle mainBundle] loadNibNamed:@”CZGroupBuyingCell” owner:nil options:nil ]lastObject];
// (1)第二种
UINib *nib = [UINib nibWithNibName:@”CZGroupBuyingCell” bundle:nil];
cell = [[nib instantiateWithOwner:nil options:nil] lastObject];