Interface Builder(简称IB,界面构建器)


1.Interface Builder(简称IB,界面构建器)

 

  1.1 是什么?

     一个可视化的界面编辑工具软件,在xcode4之后整合到了xcode中

 

  1.2 作用?

     通过可视化的界面设置,能够少写或不写代码而完成界面的设计,从而减少在控制器的viewDidLoad中写的大量有关创建控件及设置属性的代码

 

  1.3 工作原理

     将界面所需控件的设置保存到xib文件中,在创建控制器实例的时候,系统会根据指定的xib文件来自动创建视图中的各个控件的实例、设置实例的属性,将其用于对控制器自带的视图的初始化中。所以,在创建控制器实例时,需要使用initWithNibName方法来指定有关视图的配置需要加载的文件是哪一个

 

  1.4 所需文件

      XxxxYyyy.h

      XxxxYyyy.m

      XxxxYyyy.xib (xml  interface builder)

 

 1.5 IBOutlet,IBAction

     由于控制器的视图中所需的控件都由系统根据xib文件自动创建完成,所以view已经对这些控件对象是strong(强引用)了,但是,此时控制器无法访问系统创建的这些控件,于是需要通过特殊的方法来获取系统创建的这些对象的引用。

     如果,是对IB中的对象添加属性访问,让控件成为一个外界可以访问的输出口,则通过连线的方式,使其成为控制其的IBOutlet属性

     如果,是对IB中的对象添加事件的响应,则通过连线的方式,为控件添加IBAction行为

 

     添加连线的方式:

      a。打开拆分视图,左边为xib文件,右边为xib对应的控制器m文件

      b。选中控件,按下control

      c。在控件上按下鼠标左键,拖拽到右侧的指定位置

      d。如果是添加输出口,则拖拽到扩展中

      e。如果是添加action,则拖拽到类的实现中

 

  1.6 action的参数

      在为控件添加事件响应时,可以添加一个参数,默认为id类型,代表的是发生事件的源头是哪个控件,或者说本次事件的发送者是谁

      在需要用到这个参数来区分连到同一个方法上的多个控件的时候,可以在连线时,选择type参数,设置为具体的某种控件类型,不需要再在方法内进行类型转换了。

 

  1.7 使用IB连线时的注意事项

      如果对IB中的控件连线后,又删除,那么此时删掉的只是代码中的变量或方法,并没有删掉界面中控件记录的连线,一定要在xib中,选中控件,右键,查看绑定的线有几条,将不需要的连线删掉,才不会出错。

 

2.基础控件(UIStepper   UISlider    UISwitch)

  2.1 UIStepper 步进控件

     重要属性:

        .value

        .maximumValue

        .minimumValue

        .stepValue

    常用事件:

        value Changed事件:当数值改变时触发

  2.2 UISlider 滑块控件

     重要属性:

        .value

     重要事件:

        value Changed事件:当数值改变时触发

  2.3 UISwitch 开关控件

     重要属性:

        .on (BOOL)   获取或设置开关的状态

        .enabled(BOOL) 获取或设置控件是否可用

     重要的事件:

        valueChanged事件

 

3.UITextField

   3.1 是什么?

        是单行的文本输入框,支持用户的输入

   3.2 属性

        .text 获取或设置文本框内的文本

        … …

  

   3.3 系统弹出的键盘

      第一响应者:当用户触摸界面时,系统会根据手指触摸的位置层层定位到具体的控件,如果,本次触点在文本框控件的区域内,那么文本框就负责对本次的触碰事件进行响应,由于文本框比较特殊,所以系统自动将文本框设置为响应事件的第一关,并且自动弹出键盘。

 

      插播:

    当用户点击屏幕后,首先开启的是查找hit-View的过程。从window开始,给所有直接子视图发hit-Test的消息,直到某一个控件没有子视图了,并且这个触点在这个子视图中,则返回这个控件,于是hit-View找到了

    找到hit-View后,view则成为了需要第一个为这个事件提供响应的对象,如果,该对象没有提供事件响应,则该事件对象会向视图的父视图继续传递,如果父视图依然没有提供响应,则继续向上传递,直到传递到UIApplication对象,依然没有处理的话,则抛弃该事件。这个过程叫做响应者链。

 

     3.4 如何关闭键盘

        方法一:让键盘放弃第一响应者的身份即可

 [self.textField resignFirstResponder];

      

        方法二:让键盘所在的父视图结束编辑状态

            

[self.view endEditing.YES];

    3.5什么时候关闭键盘呢?(关闭键盘的时机)    

            时机一:点击键盘右下角的按键      

                     为文本框添加一个  事件

 

            机二:点击屏幕的空白部分

                    重写控制器的touchesBegan:withEvent:方法

        

4.UIAlertView &UIActionSheet

 

作业:

1.界面如下:

   [输入框][发送按钮]

   1)当点击发送按钮后,界面上会出现一个UILabel,内容就是输入框中的内容,此时要求,收起键盘,清空输入框

   2)当用户点击键盘右下角的按键时,功能和1相同

   3)label本身设置为宽280,高40,距离左边20个点

   4)多了label不能重合

 

2.界面如下:

   [输入框 账号]

   [输入框 密码]

   [登录   按钮]

   [UILabel 显示当前状态(登录后显示用户名,没登录显示未登录)]

     1)用户输入完用户名和密码后,点击登录,判断是否可以登录,如果登录成功,label上显示当前用户的用户名,如果没有登录,显示未登录

     //2)当用户没有填写用户名和密码时,点击登录,提供用户输入用户名和密码

     3)第一个textField支持Next功能,第二是Done


--------------------------------------------------------------------------------------------------------

总结:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章