iOS:在子视图中滑动手势

时间:2011-12-28 17:30:53

标签: ios xcode rotation swipe

我应该在子视图中实现滑动手势;这个子视图是一个斜视图

view1.transform = CGAffineTransformMakeRotation( ( 54 * -M_PI ) / 180 );

我希望在此视图中实现滑动手势,如果发生这种情况我应该有一个NSLog,说明在此视图中发生滑动,是否可能?

1 个答案:

答案 0 :(得分:5)

与任何其他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];

缺点是view2中有某些区域,但view1外部会响应手势识别器。