iOS:在子视图内轻扫手势
问题描述:
我应该在子视图内实施轻扫手势;此子视图是斜视图iOS:在子视图内轻扫手势
view1.transform = CGAffineTransformMakeRotation((54 * -M_PI)/180);
我想实现这个视图内的滑动手势,如果它发生了,我应该有一个NSLog的是说,刷卡此视图内发生,这可能吗?
答
正如任何其他的UIView,它可以添加一个手势识别:
UISwipeGestureRecognizer *swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)];
[view1 addGestureRecognizer:swipeGestureRecognizer];
问题在于UISwipeGestureRecognizer的财产“方向”。 Apple关于此属性的文档:
此手势识别器的滑动允许方向。
因为视图被旋转时,旋转方向沿着。如果视图被旋转180度和用户刷右,手势识别把它看作一个左滑动。我建议使用应该放置手势识别器的包装视图。试试这个:
UIView *view2 = [[UIView alloc] initWithFrame:view1.frame];
[view1.superview addSubview:view2];
view2.backgroundColor = [UIColor clearColor];
UISwipeGestureRecognizer *swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)];
[view2 addGestureRecognizer:swipeGestureRecognizer];
缺点是有视图2,但外界厂景内的某些区域,这将在手势识别响应。