iOS中initWithFrame方法的理解


1. initWithFrame方法是什么?
 
initWithFrame方法用來初始化並返回一個新的視圖對象,根據指定的CGRect(尺寸)。
當然,其他UI對象,也有initWithFrame方法,但是,我們以UIView為例,來搞清楚initWithFrame方法。
 
2.什么時候用initWithFrame方法?
簡單的說,我們用編程方式申明,創建UIView對象時,使用initWithFrame方法。
在此,我們必須搞清楚,兩種方式來進行初始化UIView。
1.使用 Interface Builder 方式。
這種方式,就是使用nib文件。通常我們說的“拖控件” 的方式。
 
實際編程中,我們如果用Interface Builder 方式創建了UIView對象。(也就是,用拖控件的方式)
那么,initWithFrame方法方法是不會被調用的。因為nib文件已經知道如何初始化該View。(因為,我們在拖該view的時候,就定義好了長、寬、背景等屬性)。
這時候,會調用initWithCoder方法,我們可以用initWithCoder方法來重新定義我們在nib中已經設置的各項屬性。
 
2.使用編程方式。
就是我們聲明一個UIView的子類,進行“手工”編寫代碼的方式。
 
實際編程中,我們使用編程方式下,來創建一個UIView或者創建UIView的子類。這時候,將調用initWithFrame方法,來實例化UIView。
特別注意,如果在子類中重載initWithFrame方法,必須先調用父類的initWithFrame方法。在對自定義的UIView子類進行初始化操作。
比如:

- (id)initWithFrame:(CGRect)frame{

    self = [super initWithFrame:frame];// 先調用父類的initWithFrame方法

    if (self) {

        

        // 再自定義該類(UIView子類)的初始化操作。

        _scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];

        [_scrollView setFrame:CGRectMake(0, 0, 320, 480)];

        _scrollView.contentSize = CGSizeMake(320*3, 480);

        

        [self addSubview:_scrollView];

    }

    return self;

}

 
在這里,我想,應該對initWithFrame方法略知一二了。
 
那么,用Interface Builder 方式創建的nib文件是什么?
 

 

對於應用程序,資源是一種數據文件,伴隨可程序執行程序的一種數據文件。(可以理解為可執行程序的,一種不可缺少的組陳部分)。

資源文件,是一種可移動的,由適合的工具編寫的一種特殊的代碼。

如:plish文件,txt文件,圖像,視頻等文件。都可以被xCode識別和引用。

 

一個應用程序可以包含多種形式的資源文件。

 

當然,nib文件也不例外,僅僅是一種資源文件。

通過Interface Builder 方式,可以創建nib文件,存儲應用程序的UI對象。供應用程序來讀取。

 


免責聲明!

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



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