IOS:IOS自定义xib文件的使用笔记

初次接触UIView的加载好像和java一样,Panel,Window,Frame,Label;

有了xib文件让设计非常方便,其实到现在我也不知道有什么更好地方法去些jar程序界面,

那一个繁琐,不是说能力的事,能让人从这么繁重的界面设计中解脱出来,至少是节省了时间;

接触IOS有三四天了,明显的感觉是code界面不一样了,在其他平台开发看代码就可以了,但是在IOS上还要看xocde的界面,因为xode是很强大的工具,事件和mode中的变量都可以通过连线来建立,不过有点不好的事完全是界面,如果打开文件编辑发现好复杂,VS工具中事件和对象是在一起的,点击界面控件可以直接绑定其对应的事件,而且在文件中也可以看到类似手动创建界面的代码,也可以手动对delegate进行加减和类型的改变,IOS这个只有连线,不过也没必要去关心这个,有一点我这个新手也比较郁闷的,ios错误的代码都会进入main(){ Application…..}中,我debug没作用,错误在下面有两个note,其实吧错误错多了就会了.

xcode6.1默认Main入口是 Main.storybord,如果用xib文件直接将这个文件删除,

1,添加一个 user interface, empty 文件,将这个文件命名为 ViewController,这时项目里就有了三个名为ViewController开头的文件;

note:在项目的general Info上面我看到有个 Main Interface 选项,我当是以为把Main删掉以后可以把ViewController.xib作为选择项,这是个很大的错误,项目一直报错,不用理会就好了;

note:在添加一个 userInface 文件不要拖动UIViewController控件到这个empty界面上,这也是个错误,这个界面的根局部是UIView,ViewController为其File,s ower;

2,将这个ViewController.xib 的custom class 设置为 ViewController.h,在file,s ower上面建立view和拖入的这个View之间连线.这在之前运行程序如果不报错的话就是黑屏的,因为他没有显示任何UIView在其上面,so 在appdelegate.m 文件中添加如下代码;

– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch.self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];self.viewController = [[ViewControllerFirst alloc] init];self.window.rootViewController = self.viewController;self.window.backgroundColor = [UIColor redColor];[self.window makeKeyAndVisible];return YES;}这个时候运行,就会出现刚才拖入的UIView界面;有个奇怪的现象,如果代码里重写 loadView方法,即使是使用 super loadView,运行之后程序完全对 ViewControllerFirst.xib免疫了,不显示,但是如果这个时候在first.xib viewDidLoad中加入load自己就又会显示界面[[NSBundle mainBundle]loadNibNamed:@"ViewControllerFirst" owner:self options:nil]note:loadView 要么不出现,要么出现,并且出现上面这行代码;

3,在first.xib中使用自定义的其他View,当然这是个简单的SingleView;这里的代码可以看做是使用了两种方式,第一句就是加载了默认的与这个ViewControllerFirst.m自身关联的xib( xib的custom class 为ViewControllerFirst.m),从最后一句代码可以看出来,self.view == rootView ;

– (void)viewDidLoad {[super viewDidLoad];UIView *rootView = [[[NSBundle mainBundle]loadNibNamed:@"ViewControllerFirst" owner:self options:nil]lastObject];//singleViewUIView *singleView = [[[NSBundle mainBundle] loadNibNamed:@"SingleView" owner:nil options:nil]lastObject];CGRect rect = singleView.frame;rect.size.width = 100;rect.size.height= 100;singleView.frame = rect;CGSize rootSize = rootView.frame.size;[singleView setCenter:CGPointMake(rootSize.width/rootSize.width,rect.origin.y)];[self.view addSubview:singleView]; //[rootView addSubview:singleView];

4,添加Cocoa touch 文件,三个独立的和 viewControllerFirst 文件一样的三个文件,因为appdelegate中设置启动纪界面为 First.m, 所以这个完全独立的ViewControllerSecond.h ,.m ,.xib文件,要添加在 first.m 的viewDidLoad中,即紧接上面的代码,大小和位置就是 CGRect 进行设置,这里就不设置了,直接添加上去;

//singleViewWithSecondCustomClassViewControllerSecond * singleViewWithClass = [[ViewControllerSecond alloc]init];[rootView addSubview:singleViewWithClass.view];如果创建 touch文件是没有勾选创建 xib 文件,那么在ViewControllerSeond选择继续关联File,s Ower或者添加代码手动指定.m文件要加载的xib文件;-(void)loadView{[super loadView];}- (void)viewDidLoad {[super viewDidLoad];[[NSBundle mainBundle]loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];// Do any additional setup after loading the view from its nib.}xib文件大概就是这样使用 1只有xib界面,2有xib界面且关联了自己的.m文件,3有界面未关联自己的.m文件;

,爱情纯属天性,不用思考。你不能为爱而爱,

IOS:IOS自定义xib文件的使用笔记

相关文章:

你感兴趣的文章:

标签云: