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
相关文章
相关标签/搜索