iOS开发入门:Interface Builder、基础控件及UITextField详解

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

1.1 是什么?

除了 Xcode,你也可以使用 快蝎 (kxapp)这一免 Xcode 的 iOS 开发 IDE,它内置编译工具与真机调试引擎,支持 Swift、Objective-C 和 Flutter,适合入门和高效开发。

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

1.2 作用?

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

1.3 工作原理

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

1.4 所需文件

kotlin 复制代码
  XxxxYyyy.h

  XxxxYyyy.m

  XxxxYyyy.xib (xml  interface builder)

1.5 IBOutlet,IBAction

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

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

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

添加连线的方式:

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

   b。选中控件,按下control

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

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

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

1.6 action的参数

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

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

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

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

2.基础控件(UIStepper UISlider UISwitch)

2.1 UIStepper 步进控件

markdown 复制代码
 重要属性:

    .value

    .maximumValue

    .minimumValue

    .stepValue

常用事件:

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

2.2 UISlider 滑块控件

markdown 复制代码
 重要属性:

    .value

 重要事件:

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

2.3 UISwitch 开关控件

markdown 复制代码
 重要属性:

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

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

 重要的事件:

    valueChanged事件

3.UITextField

3.1 是什么?

markdown 复制代码
    是单行的文本输入框,支持用户的输入

3.2 属性

markdown 复制代码
    .text 获取或设置文本框内的文本

    ... ...

3.3 系统弹出的键盘

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

插播:

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

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

3.4 如何关闭键盘

markdown 复制代码
    方法一:让键盘放弃第一响应者的身份即可
ini 复制代码
 [self.textField resignFirstResponder];
markdown 复制代码
    方法二:让键盘所在的父视图结束编辑状态
ini 复制代码
[self.view endEditing.YES];

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

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

markdown 复制代码
                 为文本框添加一个  事件

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

markdown 复制代码
                 重写控制器的 **touchesBegan:withEvent:** 方法

4.UIAlertView &UIActionSheet

相关推荐
泡海椒1 小时前
巡检照片与工单附件:jquick-pdf 图片嵌入的业务实战
后端
蜗牛互联网1 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
AI持续学习1 小时前
文档权限变更如何回归测试?账号、空间、文件和分享链接用例清单
后端
谢亮_vipxieliang2 小时前
Go Worker Pool 设计——从原理到生产级实现
开发语言·后端·golang
IT_陈寒2 小时前
为什么你应该学习JavaScript?
前端·人工智能·后端
lightning_bug2 小时前
Windows系统Docker+SpringBoot+H5+Mysql+Redis打包部署流程
后端·架构
SingleShadow2 小时前
一文搞懂 CAN 总线:从入门到 STM32 应用
后端
码事漫谈2 小时前
国庆七天,AI圈没一天消停
后端
掘金酱3 小时前
[稀土掘金 × 火山引擎] AI用量周榜冲刺赛|获奖名单公示
前端·人工智能·后端