xib 自定义视图
来源:互联网 发布:焦作市网络空间人人通 编辑:程序博客网 时间:2024/05/05 00:14
~~~~我的生活,我的点点滴滴!!
常用的自定义view的方法有三种:
1、通过初始化的时候添加views
- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { // add subviews } return self;}
2、通过重载drawRect画出自己想要的视图
- (void)drawRect:(CGRect)rect {//......}
3、通过xib
如果是布局复杂的话,使用上面1和2代码方式可以郁闷死人,又不能实时的看到视图效果,如果使用xib来布局,又TM的总要带个
UIViewController,关键是我TM根本不需要这货,所以我们要找一个不使用UIViewController当载体的xib方式来自定义视图。
a、在你的项目中新建个类,继承UIView,如果是继承UIView的是不能创建xib文件的,不要担心。
b、在单独新建个xib,xib的名字要与刚才新建的类的类名一样
c、在xib中选中View,然后更改他的class为你新建的类名,这样就和xib绑定在一起了,此后我们就可以连接IBoutlet和IBAction
到类中
d、把View的AutoLayout可以取消,然后更改一下Autosizing项
做完上面的操作后,如果要使用这个View和平常有点一同了,因为不在是我们来初始化和实例他了,我们需要使用下面的方式来实例、加载
他了
/** * 初始化代码: * * @return [nibView objectAtIndex:0] */+ (ZYCustomView *)initCustomView{ NSArray* nibView = [[NSBundle mainBundle] loadNibNamed:@"ZYCustomView" owner:nil options:nil]; return [nibView objectAtIndex:0];}
如果你想要在自己的代码中添加或者修改自己的定义的成员变量的值,可以重载initWithCoder来操作
-(id)initWithCoder:(NSCoder *)aDecoder{ self = [super initWithCoder:aDecoder]; if(self) { //you init } return self;}
iniWithCoder是在调用[[NSBundle mainBundle] loadNibNamed:@"ZYCustomView" owner:nil options:nil]时他自动调用的
或者有些自定义没有此函数重载,那就在awakeFromNib中处理(比如自定义tableviewcell时就没有iniWithCoder函数去重载)
e、使用方法:
//在其他ViewController中使用
/** * 在ViewController里引用 */- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. ZYCustomView *test = [ZYCustomView initCustomView]; test.backgroundColor = [UIColor yellowColor]; test.clipsToBounds = YES; test.frame = CGRectMake(0, 20, 320, 200); test.lb1.text = @"我是第一行"; [self.view addSubview:test];}
这样就使用xib轻松完成了自定义View了。
0 0
- xib 自定义视图
- 使用XIB实现嵌套自定义XIB视图
- iOS在Xib加载自定义Xib视图
- 用xib自定义UIView视图
- XIB 复用自定义视图
- Nested Xib Views - 使用XIB实现嵌套自定义视图
- 使用XIB实现嵌套自定义视图
- 使用XIB实现嵌套自定义视图
- IOS开发 - 05 通过Xib创建自定义视图
- iOS - 使用自定义的Xib作为自己的子视图
- 分区有的视图怎么自定义,如何关联xib
- 分区有的视图怎么自定义,如何关联xib
- 分区有的视图怎么自定义,如何关联xib
- IOS开发(97)之自定义视图之使用XIB自定义一个UIView
- XIB做视图组件
- 动态调入xib视图
- IOS开发(98)之非XIB文件的自定义视图
- 加载xib到视图上
- 需求分析常用的UML图
- socket阻塞与非阻塞,同步与异步、I/O模型
- 移位操作
- Ubuntu 10.04 安装在 VMware Workstation 7 后,键盘无法输入的问题的解决方法
- 【ThinkingInJava】8、对象的初始化为null,基本类型默认初始化为0
- xib 自定义视图
- java map的使用与遍历
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- php 解决和避免form表单重复提交的方法
- Android通过Palette来动态决定UI色彩风格
- R语言关于脚本文件的输入和输出
- Cookie/Session机制详解
- Android 编辑联系人信息
- 机器学习资料整理