美文网首页
使用Xib自定义View

使用Xib自定义View

作者: 阶梯 | 来源:发表于2018-07-25 17:00 被阅读15次

    xib应用场景

    Xib是用来描述局部的软件界面的,要求要描述的界面的子控件相对于父控件的位置要固定不变,
    并且加载Xib时,最终得到的是一个数组,这个数组表示的是我们这个Xib文件中有多少个界面,
    一般情况下,为了简便,我们的Xib文件中都只放一个界面,
    这样以便于可以通过返回的数组的 lastObject和firstObject拿到它(因为文件里面就是它一个),
    但是要给Xib里面的子控件设置数据的话,可以有两种方法:
        1>第一种是通过数组和下标的方法拿到它的子控件,再设置数据,但是这种方法很盲目。
        2>第二种是把这个Xib封装进一个类,也就是把它交给一个类来管理,这样就可以通过连线的方式直接拿到XIb的子控件,再给它设置数据,这种方法直观准确,我们一般用这种。
    
    

    xib的使用注意:

    • 1>xib创建完后一定要记得改class类型
    • 2>当通过Xib来加载View时,是不会执行init方法和initWithFrame方法
    • 3>当通过Xib来加载View时,会执行initWithCoder(初始化当前控件)和awakeFromNib(所有控件都已经初始化完)
    • 4>如果想要通过Xib来加载View,不能通过alloc init或者initWithFrame创建View.(创建出来为空)
    • 5>为了方便外界可以快速通过Xib来创建View,通常情况下,View会对外提供一个类方法来创建

    xib创建步骤

    1> 创建一个名为“TestView”的view
    创建View.png
    2> 创建一个名为“TestView”的 Xib View
    Xib创建1.png Xib创建2.png
    3>选中TestView.xib,点击View,更改Custom Class为“TestView”(即刚才所创建的TestView.h和TestView m文件),如图所示。如果要修改View的大小,可以设置属性Size为 “Freeform”。
    添加关联.png

    代码实现

    .h
    #import <UIKit/UIKit.h>
    
    @interface TestView : UIView
    
    +(instancetype)testViewClass;
    
    @end
    
    .m
    #import "TestView.h"
    
    @implementation TestView
    
    +(instancetype)testViewClass{
        
        return [[[NSBundle mainBundle] loadNibNamed:@"TestView" owner:self options:nil] lastObject];
         // lastObject 可改为 firstObject,该数组只有一个元素,写哪个都行
    }
    @end
    
    

    相关文章

      网友评论

          本文标题:使用Xib自定义View

          本文链接:https://www.haomeiwen.com/subject/oetmmftx.html