xib Nib IB 可视化编程详解

简单的说,Xib就是拖控件编程,也可以说是可视化编程. 相对于代码,使用IB和xib文件来组织UI,可以省下大量代码和时间,从而得到更快的开发速度。 如果你曾经受到过微软家Visual Basic或者其他Visual系的可视化界面的荼毒与残害,因此怀疑Interface Builder的纯正血统和工作能力,建议可以看看这些资料以纠正三观: Jean-Marie Hullot的Interface Builder神话 以及 西装革履的青涩乔帮主在NeXT时亲手用IB构建应用 (需要FQ)。另外,不妨打开你的Mac上的Application文件夹中或者iPhone上Apple家的各种应用。你会惊奇地发现,IB远比你看到的要强大:小至计算器取色器这类小工具,大至iWork三件套,Aperture或Final Cut这样的专业级应用,无一不是使用IB来完成UI制作的。

其实IB和xib是从iOS SDK初次面世开始就是捆绑在开发者工具套装内的内容了,而到了Xcode 4之后更被直接集成到了Xcode中成为了IDE的一部分。xib设计的一大目的其实是为了良好的MVC:一般来说,单个的xib文件对应一个ViewController,而对于一些自定义的view,往往也会使用单个xib并从main bundle进行加载的方式来载入。IB帮助完成view的创建,布局和与file owner的关系映射等一些列工作。对于初学者来说,牢记xib的文件都是view的内容,有助于建立起较好的MVC的概念,从而在开发中避免或少走弯路。

之前,iOS编程是分为两部分的,一个是Xcode,另一个是 Interface Builder.后来Xcode把二者合为一起了.很多人对 xib nib ib 这三个不理解,只知道  xib,下面我简要介绍一下,

xib是指后缀,

xib Nib IB 可视化编程详解

Nib   是乔帮主NS时代带过去的,

IB  实际上也是xib

总结起来, xib  Nib IB 指的都是 Xib 拖控件.

下面我来详细介绍Xib的使用:

首先,创建一个Xib文件

xib Nib IB 可视化编程详解

xib Nib IB 可视化编程详解

然后点击Next,我们工程里面就有xib文件了.

xib Nib IB 可视化编程详解

然后,我们需要初始化Controller,并把它添加到window的根视图上去.

xib Nib IB 可视化编程详解

这里面初始化有两个参数,

initWithNibName :  这是xib的名字, 我们填xib工程名的前缀

bundle : 这个是包,我们可以填nil 也可以填 [NSBundle mainBundle]

bundle:nil  ===== bundle:[NSBundle mainBundle]

查API得知,这里面两个参数当都为nil的时候,系统会

// 先找text View.xib

// 再找text ViewController.xib

这个时候,我们可以进入Xib里面了,

我们可以看到右上有一排小图标.我介绍一下,各有什么用

xib Nib IB 可视化编程详解

从左往右

第一个,描述

第二个,查找

第三个,自定义

第四个,属性(优先显示自己的属性,后面显示父类的属性)

第五个,frame

第六个,建立关联.

下面,我们拖控件建立一个登录页面;

xib Nib IB 可视化编程详解

这个时候,我们会有三个问题,

第一,怎么给UIButton添加响应事件?

第二,怎么给控件加代理?

第三,怎么定义属性,实例变量?

下面我们先来看第一个问题,

第一,怎么给UIButton添加响应事件?

我们首先鼠标点到UIButton,然后按键盘上的Ctrl键,然后拖到.h文件上去,如下图

xib Nib IB 可视化编程详解

xib Nib IB 可视化编程详解

写个方法名,然后就会出现方法声明,和方法的空实现.

下面是第二个问题,

第二,怎么给控件加代理?

当我们鼠标点击在输入框上,然后右键鼠标

xib Nib IB 可视化编程详解

再然后指向file's Owner.

xib Nib IB 可视化编程详解

这样就完成了添加代理..然后我们在代码里面手写遵守某某代理协议,在手写实现代理方法就好了.

最后一个问题,

第三,怎么定义属性,实例变量?

我们先点击在控件上,然后按Ctrl,指向点h文件,如下图

xib Nib IB 可视化编程详解

然后取名,

xib Nib IB 可视化编程详解

结果如下

xib Nib IB 可视化编程详解

定义属性跟上面基本一样,如下

xib Nib IB 可视化编程详解

结果如下:

xib Nib IB 可视化编程详解

上一篇:C#~异步编程再续~await与async引起的w3wp.exe崩溃-问题友好的解决


下一篇:C# (转载)webbrowser专题(参考资料:https://www.cnblogs.com/blogpro/p/11458390.html)