我应该在子视图中实现滑动手势;这个子视图是一个斜视图
view1.transform = CGAffineTransformMakeRotation( ( 54 * -M_PI ) / 180 );
我希望在此视图中实现滑动手势,如果发生这种情况我应该有一个NSLog,说明在此视图中发生滑动,是否可能?
答案 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外部会响应手势识别器。