自定义控件

XIB和代码自定义控件的步骤

2016-03-13  本文已影响578人  袁俊亮技术博客

title : XIB和代码自定义控件的步骤
category : UI


代码和XIB自定义控件和封装子控件的步骤

标签(空格分隔): UI


[TOC]

XIB自定义控件

加载XIB的两种方式

// 方法一:loadNibNamed:方法返回的是一个数组
UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"JLShop" owner:nil options:nil] lastObject];

// 一般情况下,bundle参数传nil,它默认就是加载mainBundle
UINib *nib = [UINib nibWithNibName:@"JLShop" bundle:nil];
UIView *view = [[nib instantiateWithOwner:nil options:nil] firstObject];
+ (instancetype)shopView
{
    return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject];
}

使用XIB自定义控件的步骤

- 创建UIView和XIB
- 修改XIB中view的类名,将XIB和UIView进行关联
- 封装XIB的加载过程
- 在类扩展中给子控件连线,关联子控件
- 增加模型属性,在模型属性set方法中设置数据到子控件上

XIB和Storyboard的对比

代码自定义控件

代码自定义控件的步骤

最好提供便利的构造方法来供外界创建控件
eg:

// 创建控件的构造方法
+ (instancetype)shopView;

+ (instancetype)shopView
{
    return [[self alloc] init];
}
  • 创建控件
  • 传递模型数据
  • 设置自定义控件的frame

注意点

建议实现方法将初始化代码统一放在一个方法中,然后分别在initWithFrame和awakeFromNib中都调用一下

上一篇 下一篇

猜你喜欢

热点阅读