zoukankan      html  css  js  c++  java
  • xib Nib IB 可视化编程详解

    简单的说,Xib就是拖控件编程,也可以说是可视化编程. 相对于代码,使用IB和xib文件来组织UI,可以省下大量代码和时间,从而得到更快的开发速度。 如果你曾经受到过微软家Visual Basic或者其他Visual系的可视化界面的荼毒与残害,因此怀疑Interface Builder的纯正血统和工作能力,建议可以看看这些资料以纠正三观: Jean-Marie Hullot的Interface Builder神话 以及 西装革履的青涩乔帮主在NeXT时亲手用IB构建应用 (需要翻墙)。另外,不妨打开你的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是指后缀,

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

    IB  实际上也是xib

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

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

    首先,创建一个Xib文件

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

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

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

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

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

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

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

      // 先找text View.xib

      // 再找text ViewController.xib

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

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

    从左往右

    第一个,描述

    第二个,查找

    第三个,自定义

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

    第五个,frame

    第六个,建立关联.

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

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

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

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

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

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

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

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

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

    下面是第二个问题,

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

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

    再然后指向file's Owner.

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

    最后一个问题,

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

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

    然后取名,

    结果如下

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

    结果如下:

  • 相关阅读:
    【STM32 .NET MF开发板学习29】摄像头蓝牙图像远程获取
    【.Net MF网络开发板研究04】Socket编程之服务端
    【.Net MF网络开发板研究01】IP地址设定及简单web演示
    【.Net MF网络开发板研究02】Http Server功能演示
    用VB.net开发.NET Micro Framework
    【.Net MF网络开发板研究03】获取雅虎天气(HttpClient示例)
    js中URL编码参数(UrlEncode,UrlDecode)[ansi编码] PHP好使 简单
    PHP通过SMTP实现发送邮件_包括附件 简单
    mysql case then使用 简单
    PHP中$_SERVER的详细参数与说明 简单
  • 原文地址:https://www.cnblogs.com/jshen/p/4384058.html
Copyright © 2011-2022 走看看