您的位置:首页 > 产品设计 > UI/UE

iOS框架研究 之 UIResponder 可以接收事件的对象(一)

2013-11-25 14:14 288 查看
1. 简介:

此类继承自NSObject

所属的框架: /System/Library/Frameworks/UIKit.framework

定义了一些接口对象,然后响应事件,它是 UIApplication, UIView 和UIWindow等的父类



iOS 中,所有显示在界面上的对象都是从 UIResponder 直接或间接继承的。



最新版本的iOS中有三种类型事件:触摸事件,motion事件,Remote 控制事件

只要手指触摸屏幕,滑动,从屏幕离开,系统都会产生UIEvent对象类型的事件---当然包括UITouch事件


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

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

– touchesEnded:withEvent: 当触摸离开屏幕时调用此方法

– touchesCancelled:withEvent: 当触摸被取消时调用此方法

iOS 3.0 + 开始支持motion事件,特别是摇动设备

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

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

– motionCancelled:withEvent: 运动被取消时执行

iOS 4.0 + 开始支持远程事件

– remoteControlReceivedWithEvent:

下面是UIEventType三种事件类型的枚举定义

typedef enum {

UIEventTypeTouches,

UIEventTypeMotion,

UIEventTypeRemoteControl,

} UIEventType;

2.会用到的有一些“响应链”函数

– nextResponder

– isFirstResponder ***

– canBecomeFirstResponder

– becomeFirstResponder***

– canResignFirstResponder

– resignFirstResponder***

3. 输入视图管理相关:

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



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

与输入相关的还有一个 reloadInputViews 方法用来重新载入输入视图。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: