使用XIB创建iOS工程

来源:互联网 发布:帝国时代3mac版本 编辑:程序博客网 时间:2024/05/01 18:52

在自学的初期,我们通常使用storyboard来作为我们的view,创建我们的工程,但是由于合作开发的需要,
我们也可以不使用storyboard,而是使用XIB的方式创建我们的项目,
下面我们逐步的创建我们的项目,本人折腾了一下午才弄好,期间走了很多弯路。。。

1 . 创建single view application,然后删除Main.storyboard,创建一个xib文件

这里写图片描述

2 . 在Info.plist中,删除Main storyboard file base name所在的项

3 . 我们开始编辑xib文件,在本文,我的xib文件名为View.xib

a . 首先点击如下图所示的File’s owner, 设置identity inspector里的class为对应的ViewController类
这里写图片描述

b. 因为ViewController类继承自UIViewController类,所以有成员view,对应显示界面的根view,我们需要把xib的view与ViewController类中的view对应起来,这样才能显示正常,
这里写图片描述

c. 添加一些控件,我们添加最简单的label
在xib中拖入空间,然后用ctrl+拖拽的方式,将outlet添加到ViewController的头文件中

xib的修改就完成了

4 . 因为以前用storyboard的时候,会有一个入口的箭头,我们运行程序的时候会在箭头处开始执行,但是xib方式没有这个箭头,怎么办呢?在AppDelegate.m中添加代码调用: 我们在如下函数中添加内容:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // Override point for customization after application launch.    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    //创建ViewController实例    ViewController *viewController = [[ViewController alloc] initWithNibName:@"View" bundle:nil];    CGRect rect = self.window.bounds;    viewController.view.frame = rect;    //设置window根视图控制器    self.window.rootViewController = viewController;    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];    return YES;}

这里面绑定了对应的xib文件,并且对布局进行了设置。
为了观察方便,我们可以把xib文件view的背景颜色设置成蓝色

我们可以发现,我们的view是铺满整个界面的,但是label并没有在中间,如何通过代码设置label呢?

5 . 代码控制label
我们已经在ViewController.h文件中声明了label的outlet,所以我们在对应的实现文件ViewController.m中,添加如下函数:

- (void)viewDidAppear:(BOOL)animated {    [super viewDidAppear:animated];    CGRect rect = self.view.bounds;    NSLog(@"view rect width %f, height %f\n",rect.size.width, rect.size.height);    CGPoint point = CGPointMake(rect.origin.x + rect.size.width/2,rect.origin.y + rect.size.height/2);    _helloLabel.center = point;    [_helloLabel setTextAlignment: NSTextAlignmentCenter];}

(我尝试过在viewDidLoad和viewWillAppear中添加这些内容,但是并不生效,而且读出来的rect也非常诡异,对于iOSview调用的具体顺序,我水平有限,不是很了解,还请大家赐教)

这里写图片描述

这时候运行程序,应该就可以正常显示了,
使用xib方式创建的工程有些复杂,还需要继续学习,希望能和大家切磋

需要注意的是,有些帖子里说,需要把LaunchScreen.xib相关的内容一并删掉,但是我发现删掉以后,会造成无论如何都无法全屏显示的结果,具体原因未知,初入iOS,还有很多未知,希望大家多多指点

0 0
原创粉丝点击