iOS | XIB簡單應用和注意點


2018開篇第一篇文章,本文分享一點關於XIB的小知識,對於iOS開發新人來說或許有用。
XIBInterface Builder 的圖形界面設計文檔。
Xcode 3.0 開始,蘋果提供Xib文件構建UI元素,其本質是XML文本文件,可以很方便的編輯。
到了Xcode 4之后更被直接集成到了Xcode中成為了IDE的一部分。

在日常開發中,使用XIB可以進行控件的快速集成,是一種小而快捷的生成途徑,但是同時存在一定的弊端。不如純代碼編寫模式那樣適合大型項目大規模使用,利於版本管理、追蹤改動以及代碼合並,代碼重用性強,代碼后期維護方便快捷。

1.創建XIB

XIB的創建有兩種初始狀態,如圖圈中的地方。
【View】表示創建時就有一個初始化的View視圖。
【Empty】表示創建時是一個空的文件。

我創建的XIB
我創建一個XIB文件,其中最大的是一個UIView,里面嵌套了兩個label文本。

2.加載xib
//因為兩種方式所獲得的都是nib文件,而文件中可能有多個子控件,所以得到的是數組,用firstobject或者lastobject都可以。
    //   ====方式一=====
     UIView *v1 = [[[NSBundle mainBundle] loadNibNamed:@"test01" owner:nil options:nil] firstObject];
     [self.view addSubview:v1];
    //    ====方式二=====
    UINib *nib = [UINib nibWithNibName:@"test01" bundle:nil];
    UIView *v2 = [[nib instantiateWithOwner:nil options:nil] firstObject];
    [self.view addSubview:v2];
3.注意點

XIB綁定的.m文件,其初始化調用的方法是調用

-(instancetype)initWithCoder:(NSCoder *)aDecoder{
    if (self = [super initWithCoder:aDecoder]) {
        
    }
    return self;
}

-(void)awakeFromNib{
    [super awakeFromNib];
    
    //UIView *v =[[UIView alloc]init];
    //v.backgroundColor = [UIColor redColor];
    //v.frame = CGRectMake(10, 50, 20, 20);
    //[self addSubview:v];
    
    self.label.text = @"hahahaha";
}

如果想使用XIB中的子控件,不可以在initWithCoder:方法中設置,因為這個時候子控件並沒有喚醒,必須在awakeFromNib方法中進行設置才會有效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM