—————————————————————————————————————————————————————
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); [email protected]"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
时间: 2024-10-27 03:37:50