[b][color=darkred][size=large]使用xib封装一个自定义view步骤[/size][/color][/b]
1.新建一个继承自UIview的自定义view.(也就是新建一个继承UIview的类,用来控制Xib的)
--> 假设名字为MyView
2.新建一个.xib的文件,来描述其内部组成结构(第一步创建的类名,最好与xib的名称一样)
--> MyView.xib
3.修改UIView的类型为MyView的类型
4.将MyView.xib内部的子控件跟MyView类进行连线(MyView.xib的对象化)
5.MyView提供一个模型属性(作用是用来接收传入的数据)
6.重写模型属性的set方法 , 在内部设置数据, 因为在set方法中可以拿到外界传递的模型数据 (封装)
7.把模型数据拆开,分别设置数据到对应的子控件中
8.提供类方法 , 把创建View的方法封装到MyView中
[b][color=darkred][size=large]xib加载过程[/size][/color][/b]
xib不会主动加载.必须主动加载
[u][color=green]加载步骤 [/color][/u]
1. 首先检测xib里面View的真实类型,并创建一个View的对象
2. 然后检测View中所有的属性,并且加载(Frame,Tag等)
3. 然后再检测子类的控件.然后一个一个创建
4. 然后创建UISwitch
5. 然后创建UISegmented Contro;
6. 以一个数组的形式返回return @[view,Switch , Segmented Contro]
1.新建一个继承自UIview的自定义view.(也就是新建一个继承UIview的类,用来控制Xib的)
--> 假设名字为MyView
2.新建一个.xib的文件,来描述其内部组成结构(第一步创建的类名,最好与xib的名称一样)
--> MyView.xib
3.修改UIView的类型为MyView的类型
4.将MyView.xib内部的子控件跟MyView类进行连线(MyView.xib的对象化)
5.MyView提供一个模型属性(作用是用来接收传入的数据)
6.重写模型属性的set方法 , 在内部设置数据, 因为在set方法中可以拿到外界传递的模型数据 (封装)
7.把模型数据拆开,分别设置数据到对应的子控件中
8.提供类方法 , 把创建View的方法封装到MyView中
[b][color=darkred][size=large]xib加载过程[/size][/color][/b]
xib不会主动加载.必须主动加载
NSBundle *bundle = [NSBubdle mainBundle];
//会从xib中创建描述的对象,并按顺序返回到数组中.所以返回是 NSArray数组
[bundle loadNibNamed:@"这里写xib的名字" owner:nil option:nil];
[u][color=green]加载步骤 [/color][/u]
1. 首先检测xib里面View的真实类型,并创建一个View的对象
2. 然后检测View中所有的属性,并且加载(Frame,Tag等)
3. 然后再检测子类的控件.然后一个一个创建
4. 然后创建UISwitch
5. 然后创建UISegmented Contro;
6. 以一个数组的形式返回return @[view,Switch , Segmented Contro]