第二讲.UITextField , UIButton , delegate , 程序启动流程,QQ登录界面搭建练习
UI一.UITextField(文本输入框)
(一) UITextField(输入框):是控制文本输入和显示的控件。在App中UITextField出现频率也比较高。
iOS系统借助虚拟键盘实现输入,当点击输入框,系统会自动调出键盘,方便你进一步操作。在你不需要输入的时候,可以使用收回键盘的方法,收回弹出的键盘。
UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑, UITextField允许用户编辑文字(输入)。
iOS系统借助虚拟键盘实现输入,当点击输入框,系统会自动调出键盘,方便你进一步操作。在你不需要输入的时候,可以使用收回键盘的方法,收回弹出的键盘。
UITextField和UILabel相比,UILabel主要用于文字显示,不能编辑, UITextField允许用户编辑文字(输入)。
创建UITextField与创建UILabel的步骤很相似,使用方法如下。
1>、开辟空间并初始化(如果本类有初始化方法,使用自己的;否则使用父类的)。
2>、设置文本显示、输入相关的属性
3>、添加到父视图上,用以显示
4>、释放
2>、设置文本显示、输入相关的属性
3>、添加到父视图上,用以显示
4>、释放
UITextField核心功能主要包含3个方面: 1.文本显示 2.输入控制 3.外观配置
示例代码:(一)(从常用属性,文本,外观,等方面说明)
(其中提示文字输出,安全密码模式输出,弹出键盘类型,边框样式,显示清除按钮等经常会用)
常用属性设置
文本显示设置
示例代码:(二)
输入控制
外观控制(轻触按钮就是在输入后面有个圆形小x号)
示例代码:(三)此处需要自己添加自定义视图,多用于QQ头像提示输入等
二、UIButton
UIButton(按钮):是响应用户点击的控件。
在App中UIButton是出现频率很高的控件。 UIButton与UILabel、UITextField侧重点不同,侧重于处理点按。
创建UIButton与创建UILabel、UITextField、UIView的步骤很相似。
1、创建button对象(如果本类有初始化方法,使用⾃自己的;否则使用父类的)。
2、设置按钮显示相关的属性
2、设置按钮显示相关的属性
3、为按钮添加点击事件
4、添加按钮到父视图上,⽤用以显示
5、按钮无需释放(因为使用的是类方法创建的button)
示例代码:(一)
创建及想相关属性设置
外观控制
添加和删除按钮点击事件详解
(按钮点击事件外部要有实现,同时为了完成点击更换窗口颜色这里还是用了宏定义)
简单总结:
UIView是所有可视化控件的基类。
UILabel、UITextField、UIButton是具有特定外观特定功能的视图。
UILabel侧重于文本的呈现。
UITextField侧重于输入。
UIButton侧重于点击事件处理。
三、delegate
使用delegate完成点击键盘上的return按钮,这个按钮点击响应事件
点击键盘return按钮实现键盘回收的步骤:
1、将AppDelete作为UITextField的delegate
2、AppDelete.h文件接受UITextFieldDelegate协议
3、AppDelete.m文件实现textFieldShouldReturn:方法
示例代码如下:(代理协议的实现过程:创建代理,遵循协议.调用实现)
在AppDelegate.h中遵循协议<UITextFieldDelegate>
在AppDelegate.m中创建代理
实现部分
四、程序启动流程
UIApplicationMain在程序入口函数main函数中调用,主要实现了3个
功能: 1>.创建应用程序(UIApplication)实例
2>.创建应用程序代理实例
3>.建立事件循环(runloop:死循环,不断检测程序运行状态,是否被触摸,晃动等)
UIApplicationDelegate是一个OC的协议。里面声明了一堆方法,这些方法都与应用程序运行状态有关,它们由应用程序代理实现。UIApplication 对象负责调用。
UIApplicationDelegate协议代理的一些方法:
五.总结(懒省事了 😊 )
练习题:根据一个view的大小位置设置其余view,button等的位置和大小,并实现简单QQ登录界面
示例代码:
AppDeleGate.m文件(上)
AppDeleGate.m文件(下)
效果图: