一、代码
1. 在自定义控件的时候分为自定义控件和子控件,自定义固定控件的时候直接在
initWithFrame中设置。
init
底层就会调用
initWithFrame,
用于初始化控件的固定属性。
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self setup];
}
return self;
}
setup方法是用来定义控件的
2. 如果需要根据传入的属性对控件进行布局时,在layoutSubViews中设置
layoutSubViews在控件即将加载到父控件中时调用
layoutSubViews在控件即将加载到父控件中时调用
- (void)layoutSubviews
{
NSUInteger count = self.subviews.count;
for (int i = 0; i < count; i ++) {
WWTabBarBotton *btn = self.subviews[i];
CGFloat btnW = self.bounds.size.width / count;
CGFloat btnX = btnW *i;
CGFloat btnH = self.bounds.size.height ;
[btn setFrame:CGRectMake(btnX, 0, btnW, btnH)];
}
}
3. 需要传入模型的时候重写模型类的set方法
二、storyBoard
使用
storyBoard
创建控制器
1. 加载storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboardName" bundle:nil];
2. 设置箭头指向的控制器为自定义控制器
控制器类型 *discover = [storyboard instantiateInitialViewController];
三 、 Xib
使用Xib创建控件的时候调用,返回控件
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil