iOS-学习笔记-UI-第三天

回顾:

1. IB

    1.1 格式xib,保存设置

    1.2 创建vc实例时,指定加载某一个xib,则系统通过读取xib自动的创建并添加控件,所有这些创建动作都会在viewDidLoad之前完成。

    1.3 IBOutlet、IBAction


2. 基本控件

    2.1 UIStepper

    2.2 UISlider

    2.3 UISwitch

    2.4 UITextField


今天:


0. 键盘是如何弹起的?

    0.1 事件的响应机制与过程

            1> 查找hitView

                    发送hitTest消息

            2> 事件响应

                    step1:当用户点击屏幕时,系统最先开始一个查找hitTest的过程,从外向内,逐级定位,window先给自己的所有直接子视图发hitTest消息,由子视图判断触点释放在自己的区域内,不在,则返回nil,在则子视图判断自己是否还有子视图,有,则继续发hitTest消息,直到,有某一个子视图不在包含其他子视图,并且触点还在这个子视图范围内,则返回自己

                    step2:找到hitView之后,先从hitView开始判断该视图是否提供了针对事件的响应,如果有,则执行,如果没有提供响应的话,则将事件向上传递,父容器提供了事件响应,则执行,无响应,则再继续,遵循这样的传递路径:

    view->super view->supe view->vc->window->appDelegat,如果代理类也没有提供响应,则将该事件抛弃。

    0.2 键盘为什么弹起?

            当用户的触点刚好是一个文本框时,系统找到hitView发现类型为UITextField,则强制这个文本框必须成为本次点击的响应者,叫做第一响应者,一旦某文本框成为了第一响应者,系统就会自动弹出键盘。

            成为第一响应者可以有两种方式:

            第一:用户点击之后,自动成为第一响应者

            第二:使用代码强制某文本框成为第一响应者 becomeFirstResponder


1. 如何关闭键盘

    1.1 方式一:

        让文本框放弃第一响应者的身份即可

            textField resignFirstResponder


    1.2 方式二:

        设置文本框所在的父视图,结束编辑状态即可

            view endEditing:YES



2. 关闭键盘的时机

    2.1 时机一:

        点击键盘右下键 返回 按键

        为文本框添加一个事件——Did End On Exit ,


    2.2 时机二

        点击屏幕中空白部分

        重写控制器的 touchesBegan方法



3. UIAlertView 警告框

    作用:阻碍应用程序继续,给出关键性的提示

    如何使用:

    ​    ​(1)创建警告框,定制界面

    ​    ​(2)show出来

    ​如何响应用户点击按钮动作

    ​    ​(1)设置当前控制器为alertView的代理

    ​    ​(2)让当前控制器遵守协议

    ​    ​(3)找到协议中合适的方法(从方法名上判断方法的执行时机,找到与要响应的事件最符合的那个方法),实现该方法

    ​  注意:协议中的每一个方法,第一个参数一定是委托方自己,这样的好处是代理方受到消息时,可以通过第一参数直到委托方是谁

    警告框: 为用户提供警觉性的重要信息的一种界面交互元素

    特点:模态形式显示,不关闭无法继续其他操作

    

  
    
    
    
    
  1. UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"警告消息" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
  2. [alert show];


4. UIActionSheet 操作表

    ​    ​作用:为用户的操作提供多个选项,最无害的取消按钮会出现在最底部,危险性的按钮以红色字体出现在列表的顶部,从上至下,按钮的index依次为0,1,2...

    ​    ​如何使用:

    ​    ​    ​    ​(1)创建actionSheet,定制界面

    ​    ​    ​    ​(2)showInView的方式来显示

    ​    ​    ​    ​(3)控制器实现clickedButtonAtIndex方法




5. 委托模式(设计模式)

    (1)现实生活

        参与方:两方,主动方也叫委托方,被动做事的一方叫做代理方

        两者之间的关系:委托方可以让代理方帮助他完成某些事情    

    (2)代码世界

        理念:系统定义的某些界面类,只负责显示,如果与用户有了交互动作,那么针对该动作的处理,界面无法完成,需要交给代理方来实现,所以,就需要一些自定义的类来充当代理方。

        实现的步骤:

            (1)将某一个对象设置为代理方

            (2)代理方遵守协议

            (3)代理方实现的方法


6. MVC设计模式

    4.1 什么是MVC设计模式?

            参与方:三方

                    M:Model         模型层

                    V:View            视图层

                    C:Controller    控制器层


            各方的作用:

                V:负责显示,接受用户的输入及操作

                M:数据模型(构建一种存数据的结构) 业务模型(用于描述软件的业务是什么)

                C:负责数据的传递(将V中接受的输入传给M,由M进行处理,将M中处理完的结果显示到V上)


        解决的问题:高内聚,低耦合       


作业:

1. Message练习

    ​界面如下:

    ​[输入框][发送按钮]

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

    ​(2)当用户单击键盘右上角的按钮时,功能和1相同

    ​(3)label设置为宽280高40 距离左边20个点,上下距离10个点

    ​(4)label不重合


2. 界面如下:

    ​[输入框 账号]

    ​[输入框 密码]

    ​[登陆 按钮]

​[UILabel 显示当前状态,已经登陆则显示用户名,没登陆显示未登录]

    ​(1)用户输入完用户名和密码后,单击登录按钮,判断用户名和密码是否正确,如果正确,则在label上显示用户名,如果错误,显示未登陆

    ​(2)当用户没有添加用户名或密码时,单击登陆,则提醒用户输入用户名或密码

    ​(3)第一个文本框支持Next功能,第二个文本框右下角按键显示Done,点击Done按钮和点击登陆按钮功能相同。

         

MVC作业 翻牌游戏

你可能感兴趣的:(Hello,iOS,Hello,Objective-C,ios,ui)