IOS Xib的基本使用

     好吧,本来作为一个代码的强烈爱好者,使用Xib我是拒绝的。在屏幕适配和UI搭建的压力下,学习了Xib.在此感谢帮助过我学习Xib的朋友们!!!

     Xib可以在User Interface里面创建:

   

  你可以创建你的 自定义view,或者干脆创建一个空的Empty.创建view,在控制器中加载它还比较麻烦,需要使用nib文件进行加载,用的比较多的地方就是你自定义弹出框,或  者在严格的MVC模式下分出来的view使用。如何加载UIView的Xib文件,网上有很多教程,大概步骤是这样的。代码创建一个类继承自UIView,然后在上图中选择 View创建Xib文件,创建好Xib文件之后,在Xib文件的Custom Class选项下的 class中填写你代码创建的继承自UIView的类名,这样你的view 的Xib文件与代码的view类相互关联了起来。在你的控制器里面用代码初始化这个view,设置它的大小。加载nib文件的方法例子(网上很多啦):

 _customView = [[[NSBundlemainBundle]loadNibNamed:@"CustomView"owner:niloptions:nil]firstObject];

红色为你的Xib文件名。

2.工程中使用最多的方式:你可以在创建你的控制器的时候,顺带创建本控制器的Xib文件,它就自动与你的控制器进行了联动关联。不仅仅是控制器,你创建自定义表格视图的单元格的类的时候,也可以将本类的Xib文件创建了:


Also create XIB file ,勾选这个选项,会自动生成与当前类关联的Xib文件,你在里面拖入空间,控制器会自动加载出来,你不用管,除非你想操作里面的控件,使用分屏拖入即可:


在拖入表格视图等重要控件的时候不要忘记在Xib文件中的 dataSource和delegate进行关联,不然会出现控件在控制器中加载不出来的情况,鼠标点击表格视图,按住controller 键,往FilesOwner拖,就会出现如图:


选择数据源与代理,就可以将表格视图加载出来。

4.原生的Xib文件的尺寸比较大,你可以在这里选择设置:


注意右边的选项,你就可以选择当前view的大小,不过我一般还是选择原生的~~

5.我们在自定义单元格的时候,也要使用nib的方法,将自定义单元格的那个Xib 文件给加载进来,表格视图才会显示你所定义的单元格的风格那样。但是在单元格重用的cellforrowatindexpath方法里面,单元格风格的选择还是和纯代码的一样。好,比如我们已经将表格视图在控制器中拖好,自定义单元格的Xib文件也已经搞定,现在要加载这个自定义单元格的表格视图。我们在控制器的viewDidLoad方法中写如下代码:

[_TestTableViewregisterNib:[UINibnibWithNibName:@"TestTableViewCell"bundle:nil]forCellReuseIdentifier:kUImyCellIdentifier];

其中红色的名字就是自定义单元格的Xib文件名字。

6.关于遇到的一个问题,我在按照别人的代码敲实现二维码的扫面功能的时候发现:二维码中间有有一个UIView,它用来执行你手机扫描的时候的扫描动画,我是用Xib拖的,在真机测试的时候发现,我用Xib拖的这个UIView不透明,无法看见中间这个view 后面的东西。回过头来发现,我朋友用的手写的UIView,就设置了个尺寸而已,我拖的也是什么也没干,我干脆在Xib中设置view背景颜色的选项里面选择clear color,视图就透明了。事后想想可能是因为在这个view加了layer层动画的原因,手写与Xib创建的视图会有一些默认设置不一样?待后来解决。

  Xib属于轻量级的UI 搭建,我在我参与团队合作朋友们的代码中发现,他们都大量使用Xib进行UI搭建,而都没有采用故事版,他们说故事板谁用谁知道~~~~~

  Xib创建好后要使用自动布局进行屏幕适配,请看我的另外一篇使用Xib与自动布局

  希望自己不要忘记,也希望可以帮助到别人。   


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值