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

iOS 事件处理之UIResponder简介

2016-06-11 01:50 537 查看
在用户使用app过程中,会产生各种各样的事件

iOS中的事件可以分为3大类型:触摸事件、加速计事件、远程控制事件

在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”

UIApplication、UIViewController、UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件





// 当手指开始触摸view
// NSArray,字典,NSSet(无序)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%ld", touches.count);
NSLog(@"%s",__func__);
}

// 当手指在view上移动的时候
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%s",__func__);

// 获取UITouch对象
UITouch *touch = [touches anyObject];

// 获取当前点
CGPoint curP = [touch locationInView:self];

// 获取上一个点
CGPoint preP = [touch previousLocationInView:self];

// 获取x轴偏移量
CGFloat offsetX = curP.x - preP.x;

// 获取y轴偏移量
CGFloat offsetY = curP.y - preP.y;

// 修改view的位置(frame,center,transform)
self.transform = CGAffineTransformTranslate(self.transform, offsetX, offsetY);

//    self.transform = CGAffineTransformMakeTranslation(offsetX, 0);

}

// 当手指离开这个view的时候
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"%s",__func__);
}

// 当触摸事件被打断的时候调用(电话打入)
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%s",__func__);
}












内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: