iOS UI学习之路07

来源:互联网 发布:网络咨询医生话术 编辑:程序博客网 时间:2024/06/05 05:41

触摸事件

iOS中事件可以分为三大类:触摸事件、加速器事件(摇晃手机)、远程控制事件(线控)

在iOS中只有集成了UIResponder的对象才能接受并处理事件,我们称之为"响应者对象"

UIApplication、UIViewController、UIView、UIWindow都是集成自UIResponder,因此他们都是响应者对象,都能够接受并处理事件

事件传递与事件响应

触摸事件

触摸事件的相应方法

touchesBegan: withEvent: 一根或多根手指开始触摸屏幕

touchesMoved: withEvent: 一根或多根手指开始在屏幕上移动(重复执行)

touchesEnded: withEvent: 一根或多根手指触摸结束离开屏幕时执行

touchesCancelled: withEvent: 触摸意外取消执行(例如:正在触摸时接电话)

不接收触摸事件三种情况

不接收用户交互,UserInterActionEnable = NO;

影藏,hidden = YES;

透明,alpha = 0.0-0.01

当前视图未显示在父视图中(父视图无法将事件传递过来),例如:父视图的frame为CGRectZero

常用方法

-(UIResponder *)nextResponder    获取下一个响应者

–(BOOL)becomeFirctResponder    是否设置第一响应者

–(BOOL)resignFirstResponder    是否取消第一响应者

手势

iOS中的不同手势

UITapGestureRecognizer    点击手势

UIPinchGestureRecognizer        捏合手势

UIPanGestureRecognizer    平移手势

UISwipeGestureRecognizer    轻扫手势

UIRotationGestureRecognizer    旋转手势

UILongPressGestureRecognizer    长按手势

手势的状态

UIGestureRecognizerStatePossible    尚未识别何种手势(但可能已经出发了触摸手势),默认状态

UIGestureRecognizerBegan        手势已经开始,但这个过程可能发生变化,手势操作尚未完成

UIGestureRecognizerChanged    手势状态发生改变

UIGestureRecognizerEnded        手势识别操作完成(松开手指)

UIGestureRecognizerCancelled    手势被取消,恢复到默认状态

UIGestureRecognizerFailed    手势识别失败,恢复到默认状态

手势的添加创建

点击手势,其他手势相似

UITapGestureRecognizer *top = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];

tap.numberOfTapsRequired = 1;    //设置点击次数

tap.numberOfTouchesRequired = 1;    //设置触摸的手指数

[self.view addGestureRecognizer: tap];

原创粉丝点击