UIResponder

首先,掌握下UIResponder的概念,一个 UIResponder 对象表示一个可以接收触摸屏上的触摸事件的对象,通俗一点的说,就是表示一个可以接收事件的对象。iOS 中,所有显示在界面上的对象都是从 UIResponder 直接或间接继承的。

1、了解了UIResponder的概念后,再来看iOS事件的相关概念,iOS中有三种事件概念:触摸事件、运动事件(motion)、远程控制事件(remote control)。枚举定义如下:

typedef enum {
    UIEventTypeTouches,
    UIEventTypeMotion,
    UIEventTypeRemoteControl,
} UIEventType;

UIResponder的触摸事件的方法:

-touchesBegan:withEvent:当用户触摸到屏幕时调用方法

-touchesEnded:withEvent:当用户触摸到屏幕并移动时调用此方法

-touchesMoved:withEvent:当触摸离开屏幕时调用此方法

-touchesCancled:withEvent:当触摸被取消时调用此方法

UIResponder的运动相关事件的方法:(iOS3.0+开始支持)

-motionBegan:withEvent:运动开始时执行

-motionEnded:withEvent:运动结束时执行

-motionCancled:withEvent:运动被取消时执行

UIResponder的运程控制事件方法:(iOS4.0+开始支持)

-remoteControlReceivedWithEvent  

2、接收事件之后,使用到的响应链函数,

-nextResponder 下一个响应者,在实现中,一般会返回父级对象

-isFirstResponder  指示对象是否为第一响应者,这里的第一响应者就是当前有焦点的对象,叫法挺奇怪的,第一次看到真还难以理解这个叫法所表达的意思

-canBecomeFirstResponder  获取一个布尔值,指定对象是否可以获取焦点

-becomeFirstResponder   把对象设置为 firstResponder 对象

-canResignFirstResponder   对象是否可以取消 firstResponder 对象

-resignFirstResponder  取消对象为 firstResponder 对象

3、响应函数调起后,会弹出跟输入相关的view(managing input views)

输入视图是指当对象为 firstResponder 对象时,需要借助另外一个视图用来处理当前对象的信息输入,如 UITextView  UITextField 两个对象,在 UITextField 成为 firstResponder 对象时,会显示一个系统键盘,用来输入信息。这个键盘视图就是一个输入视图了。

一共有两个相关的输入视图,一个是 inputView, 另一个是 inputAccessoryView,这两个视图显示的关系如下图:

从图中可以看到, 如果 inputView  inputAccessoryView 两个属性都指定了相应的视图,则 inputAccessoryView 对象显示在 inputView 对象的上面

       与输入相关的还有一个 reloadInputViews 方法用来重新载入输入视图。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值