—————————————————————————————————————————————————————
框架
ViewController.h文件 #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIView *viewOne; @property (weak, nonatomic) IBOutlet UILabel *lable; @end
ViewController.m 文件 //Xibs就是佈局界面的一種方式。 //建立xib的方法:選擇New->File->UserInterface->Empty 設置將要建立Xib的文件名字, //============ 第一種: 首先,關於Xib加載 這裏以「XibLoadView」爲例==========// //--------------進入XibLoadView.xib文件----------- //建立好Xib文件後,咱們看到Xib中沒有任何頁面,拖進一個View控件,此時View控件不能調節大小,設置View的size是Freeform,拖入應有的控件。 //--------------進入Viewcontroller.m文件------------ //1.加載Xib文件。 /* bundle是一個目錄,其中包含了程序會使用到的資源. 這些資源包含了如圖像,聲音,編譯好的代碼,nib文件(用戶也會把bundle稱爲plug-in). 對應bundle,cocoa提供了類NSBundle. 咱們的程序是一個bundle. 在Finder中,一個應用程序看上去和其餘文件沒有什麼區別. 可是實際上它是一個包含了nib文件,編譯代碼,以及其餘資源的目錄. 咱們把這個目錄叫作程序的main bundle 經過使用下面的方法獲得程序的main bundle NSBundle *myBundle = [NSBundle mainBundle];//通常咱們經過這種方法來獲得bundle. 一旦咱們有了NSBundle 對象,那麼就能夠訪問其中的資源了 */ //加載方法:[ [ NSBundle mainBundle ] loadNibNamed:@"Xib文件名" owner:nil options:nil ] ; //============第二種 其次,關於Xib控件屬性 這裏以「XibViewOne」爲例==========// //與第一種方法的不一樣,這樣的Xib能夠得到控件的對象,設置每個控件的屬性 //--------------進入XibLoadView.xib文件----------- //建立好Xib文件後,咱們看到Xib中沒有任何頁面,拖進一個View控件,此時View控件不能調節大小,設置View1的size是Freeform後在看,這是View就能夠改變大小了。調整好View的大小。設置backgroundColor的顏色以便確認是否加載成功。拖Label控件標示說明當前View //--------------進入Viewcontroller.h文件------------ //拖線,將控件拖進viewController的接口文件裏,注意要將file's owner的class變爲ViewController. //--------------進入Viewcontroller.m文件------------ //加載Xib。注意owner變量爲self //============第三種 關於Xib控件 這裏以「XibViewTwo」爲例,建立Class名爲ViewTwo==========// //這種是將Xib文件和Class分開建立,建好後在進行變量關聯的 //--------------進入XibLoadView.xib文件----------- //建立好Xib文件後,拖入須要控件,將控件大小設置好,設置文件的File's Owner 對應的Class。設置欄填寫ViewTwo //--------------進入ViewTwo.h文件------------ //拖線。注意:若是建立的爲NSObject類須要引入UIKit框架 //--------------進入Viewcontroller.m文件------------ //1.引入頭文件,ViewTwo.h 2.實例化ViewTwo的對象 //2.加載Xib。注意owner變量爲ViewTwo的對象 //3.獲取View #import "ViewController.h" #import "ViewTwo.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //============ 關於Xib加載 ==========// //加載Xib。當Xib在通過編譯連接以後就變爲nib文件。nib在bundle目錄下,先獲取程序的mainbundle,在其中加載指定的nib文件,這裏owner爲nil是因爲,沒有owner變量 NSArray * array = [ [ NSBundle mainBundle ] loadNibNamed:@"XibLoadView" owner:nil options:nil ] ; UIView * ViewLoadFromXib = [ array firstObject ] ;//在取出View時注意,這裏咱們能夠用[ array lastObject ],因爲這個Xib只有一個View [ self.view addSubview : ViewLoadFromXib ] ;//添加到根視圖 //============ 其次,關於Xib控件屬性 這裏以「XibViewOne」爲例==========// NSArray * arrayOne = [ [ NSBundle mainBundle ] loadNibNamed:@"XibViewOne" owner:self options:nil ] ;//這裏的owner是 _viewOne = [ arrayOne firstObject ] ;//在取出View時注意,這裏咱們能夠用[ array lastObject ],因爲這個Xib只有一個View _viewOne.frame=CGRectMake(0, 100, 375, 100); [ self.view addSubview : _viewOne ] ;//添加到根視圖 //============ 關於Xib控件 這裏以「XibViewTwo」爲例==========// //實例化ViewTwo對象 ViewTwo * viewOnwer = [ [ ViewTwo alloc ] init ] ; NSArray * arrayViewTwo = [[ NSBundle mainBundle ] loadNibNamed:@"XibViewTwo" owner:viewOnwer options:nil]; UIView * view = [ arrayViewTwo firstObject ] ; view.frame=CGRectMake(0, 210, 375, 100); viewOnwer.label.text=@"XibViewTwo-___-"; [ self.view addSubview:view ] ; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
ViewTwo.c文件 #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface ViewTwo : NSObject @property (weak, nonatomic) IBOutlet UILabel *label; @property (strong, nonatomic) IBOutlet UIView *View; @end
ViewTwo.m文件 #import "ViewTwo.h" @implementation ViewTwo @end