设为首页 加入收藏

TOP

XIB(一)
2017-10-13 10:24:28 】 浏览:7820
Tags:XIB

XIB

Storyboard 和 xib

1.1 Storyboard故事板 Storyboard的是 ios5 的新特征 目的是代替历史悠久的xib.Storyboard 是多个xib文件集合的描述文件,也采用xml格式.如果要使用Storyboard特性,那么AppDelegate必须继承自UIResponder类, 之前则是继承自NSObject类的,而且必须有一个不是UIOutlet类的Window属性声明才可以 

>> 注意点: 当我们需要更换Stoard 我们需要把infor.plist Main interface 里的东西 删除 否则会报错

>>优点 : stroryboard 可以帮助我们解决很多重复的跳转方法 可以节省很多时间.代码量少 开发周期短.可以看到每个ViewController的布局样式 也可以明确地知道各个ViewController的跳转关系

>>缺点 :团队开发不便

1.2 storyboard 的使用

// 1.创建窗口

    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    // 2.创建控制器[storyboard故事板]

    // 2.1 先加载故事板文件

    UIStoryboard *boss = [UIStoryboard storyboardWithName:@"CZBoss" bundle:nil];

    // 2.2 实例化初始化控制器[带箭头]

//UIViewController *vc = [boss instantiateInitialViewController];

    //根据表示符,实例化控制器

    UIViewController *vc = [boss instantiateViewControllerWithIdentifier:@"blue"];

    // 3.设置窗口的根控制器

    self.window.rootViewController = vc;

    // 4.把窗口作为主窗口并可见

    [self.window makeKeyAndVisible];

 

2 Xib

> >Xcode.3.0 之前 Interface Build 创建的文件是二进制nib nib代表Next interface Builder 因为nib是二进制不好管理 也不方便版本控制  xcode.3.0 之后 interface builder 使用了一种新的文件格式xib xib的意思是XML interface builder, xib 使用了XML 在工程编译的时候在转换成nib

>> xcode 4.0 之前 interface Builde 是一个独立软件, 而Xcode  4.0 是个大版本 界面被重新设计 interface Builder 被直接集成到xcode 

注意点: 当我们用xib 会遇到 xib 添加到控制器view 中有时程序会崩溃 

错误提示: unrecognized selector sent to instance 0x7ffae1c1b680'

这时我们应注意xib里控件有几个 ,我们加载xib 会以数组的形式加载 xib对象是按照放进去的顺序排列的

>> Xib 的优点 :

> 开发速度快 

> 在版本管理上和纯代码的差异并不是很大 易读易维护

缺点 :

xib中设置往往并非最终设置 UI设计会被代码所覆盖

(如果选择xib,那么要尽量将xib的工作和代码的工作隔离开来:能够使用xib完成的内容就统一使用xib 来做 而不要说三个label其中俩个在xib设置字体 而另一个却在代码设置 尽量仅保持必要的 较少的IBOutelet 和IBAction)

 

3 xib 和 Storyboard 的区别

xib 是轻量级的

Storyboard 是重量级的

共同点 : 都用来描述软件的界面 都用Interface Buile工具编译

不同点 :

xib是轻量级 用来描述局部的UI界面 

Storyboard 是重量级 用来描述整个软件的多个界面 并且 能展示多个界面之间的跳转关系

 

4 补充:

一、Interface Builder介绍

1、概念

Interface Builder苹果平台下用于设计和测试用户界面的应用程序,简称IB。简单理解,IB就是提供可视化设计环境。

2、作用及特点

IB给用户提供了可视化的操作界面,可以很方便并且直观的设计出用户界面元素。IB提供的拖放面板,使用拖拽就可以方便的构建出UI界面。使用IB是可选的,因为所有控件都可以使用代码来实现。

3、集成

Interface Builder工具是在iPhone SDK中提供的,应用于Mac OC 和iOS应用开发,从Xcode4开始,集成到了其中(之前是独立的软件)。

4、Nib元素

(1) Nib文件是保存由Interface Builder创建的对象及对象间关系的一种资源文档,Nib 是 NeXT Interface Builder的缩写。

(2)早期,IB使用Nib文件存储控件资源,Nib本身是二进制文件。

5、Xib的出现

(1)自从Xcode 3.0 开始,苹果提供Xib文件构建UI元素,本质是XML文本文件,可以很方便的编辑。同时Xib可以编译为Nib。

(2)Nib 和 Xib都是 Interface Builder 的图形界面设计文档。

二、xib介绍

1、简介

(1)IB和xib是从iOS SDK初次面世开始就是捆绑在开发者工具套装内的内容了(独立),而到了Xcode 4之后更被直接集成到了Xcode中成为了IDE的一部分。

(2)Xib是XML格式的文件。

(3)UIViewController生命周期函数loadView之前,Xib会转化成可执行的nib文件

2、使用

(1)通过xib加载控件

<1>loadNibNamed 方法

(2)通过xib加载控制器

<1>initWithNibName: bundle:方法  (如果xib和控制器名字相同或近似,可以不用实例化)

<2>设置xib的身份检查器中的关联

<3>设置File's Owner ,拖动到View上

3、优势

(1)相比纯代码,大大缩短了UI界面搭建的时间,提高了开发效率。

(2)可视化的效果,更直观的设计。

4、问题

(1)Xib无法进行逻辑判断。

(2)很难在运行时进行配置,Xib在使用时,经常要通过代码的补充,来完成功能实现。

(3)多人开发中通过代码修改Xib的属性,可能造成混乱和不可预计的问题。

(4)从程序员角度,可读性较差。不利于统

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇学习Coding-iOS开源项目日志(二) 下一篇Block的使用及循环引用的解决

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目