OObjevtive-c 關於UI Xibs佈局界面


—————————————————————————————————————————————————————
框架




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
相關文章
相關標籤/搜索