iOS使用xib自定义UIView

一般自定义View代码方式

  //1-在初始化的时候添加 子Views
- (id)initWithFrame:(CGRect)frame  
{  
     self = [super initWithFrame:frame];  
     if (self) {  
     // add subviews  
     }  
 return self;  
 }  
 //2-还有种 是自己画。 重载   
- (void)drawRect:(CGRect)rect {

}

有些情况下,我们发现有一些界面上的控件是可以复用的。
如果每次都拷贝这些控件过去,就是比较麻烦。所以,就用一个xib文件,创建一个view,把要复用的控件,放在里面组成一个view,然后在其他的ViewController里面引用就行了。

这样会方便很多。

第一步:创建一个SingleViewApplication,命名为“xib作为子控件复用”,在项目里New File,选择Cocoa Touch Class,命名为"AAView",点击Next,如图1所示:

1418092637819667.png

第二步:创建一个View,在项目里面New File,选择View,点击Next,如图2所示。命名为”AAView“,点击Create,如图3所示:

1418092656274965.png
1418092668724274.png

第三步:选中AAView.xib,点击View,更改Custom Class为“AAView”(即刚才所创建的AAView.h和AAView.m文件),如图4所示。如果要修改View的大小,可以设置属性Size为 “Freeform”。

1418092716559300.png

第四步: 在View里面添加4个Label,修改Text,如图5所示。为"小王"和"21"两个Label添加Outlets,按住Control拖到AAView.h文件,分别命名,如图6所示:

1418092746154763.png
1418092758280833.png

第五步:现在就是如何把这个View作为子控件加载到其他界面了,打开ViewController.m文件,把AAView.h” import进来,然后在ViewDidLoad里面写入以下代码:

AAView *aaView = [[[NSBundle mainBundle] loadNibNamed:@"AAView" owner:self options:nil] lastObject]; // lastObject 可改为 firstObject,该数组只有一个元素,写哪个都行,看个人习惯。

aaView.lbName.text = @"小明";

aaView.lbAge.text = @"25";

[self.view addSubview:aaView];

运行程序,结果如图7所示:

1418092820304809.jpg

至此,可以看见姓名和年龄都改变了,成功完成把xib文件作为一个子控件使用。如果你觉得位置不满意,可以更改创建的View的Frame属性,改变大小和位置。

有时候你有很多复杂的控件组成一个复杂的组件,然后进行复用,这就是一个很好的办法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,684评论 25 709
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,276评论 30 472
  • 昨夜,下了点小雨,山路显得十分难走。现在,正值六月,恰好是梨花开得好时节,不料,因为这雨,花期便退后了。 “娘娘,...
    欢喜xixixixi阅读 430评论 0 1
  • 自打你我来过 这亭子就显得格外清丽 池水中已浮起莲叶 栅栏外布满青篱 廊桥边满目茏葱 莲湖水波光粼粼 亭台里那红衣...
    汉江柳阅读 377评论 0 1
  • 转http://www.cocoachina.com/ios/20161129/18211.html
    chsasaw阅读 284评论 0 0