关于手势处理

项目要求:通过手势滑动方向和距离操作无人机

起初

用UISwipeGestureRecognizer初始化,指定四个方向direction,再添加到views 上,啪啪啪,三两下搞好了,发现swipe是在UIGestureRecognizerStateEnded状态下才触发的,而不能获得 UIGestureRecognizerStateBegan

而要求是要在滑动过程中,持续将发出数据,

现在

不使用系统手势,直接获取view的点击事件

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event;

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent *)event;

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent *)event;

在方法中有做判断

if([touches count] != 1)

return ;

UITouch *touch = [touches anyObject];

UIView *view = [touch view];

if(view != self)

return ;

Point = [touch locationInView:view];

然后在Began时获得起始点 startPoint,并开启定时器 [self startUpdateTimer],在Moved时获得结束点 endPoint,在Ended中关闭定时器 [self stopUpdateTimer];将两者的距离和方向计算出来

- (void)distanceOfPoint:(CGPoint)point1 withPoint:(CGPoint)point2

内部计算较为简单,然后将滑动方向和距离 结果传出,这里用了刚学到的新技能RAC,将信号压缩传出

[[RACSignal zip:@[self.directionSignal, self.distanceandSignal, self.viewTargetSignal]]subscribeNext:^(id x) {

NSDictionary *flyOrderInfo = [NSDictionary dictionaryWithObjectsAndKeys:

x, @"flyOrderInfo", nil];

postNotification(SENDFLYORDER,self, flyOrderInfo);

}];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值