我想知道是否有办法限制 GestureRecognizers 中 UIViews 的大小或移动。
当然,我可以编写自己的限制代码,但想知道我们是否可以设置某些属性或某些东西来限制某些限制。
例如,在UIPanGestureRecognizer
我想限制添加到PanGesture
特定 CGRect 中的视图的移动,那么有什么方法可以设置边界矩形,以便感知PanGesture
视图是否超出我的边界框,它不会允许它。
我想知道是否有办法限制 GestureRecognizers 中 UIViews 的大小或移动。
当然,我可以编写自己的限制代码,但想知道我们是否可以设置某些属性或某些东西来限制某些限制。
例如,在UIPanGestureRecognizer
我想限制添加到PanGesture
特定 CGRect 中的视图的移动,那么有什么方法可以设置边界矩形,以便感知PanGesture
视图是否超出我的边界框,它不会允许它。
我认为实现这一点的最简单方法是在该矩形中创建一个不可见的视图并向其添加手势。示例:您想要检测矩形 {a,b,c,d} 内视图 X 中的移动。在 {a,b,c,d} 矩形中创建一个 UIView Y。将其背景颜色设置为 clearColor。创建手势识别器并将其添加到 Y 视图。在手势的选择器中执行以下操作:
- (void) selector:(UIPanGestureRecognizer *) gesture
{
UIView *viewX = [self.view viewWithTag:kTagViewX];
//now you know that the gesture took place and you have access to your view
}
如果您需要更改您希望手势处于活动状态的矩形,只需移动 Y 视图,瞧!
编辑:
您还可以使用 UIGestureRecognizer 委托并在此方法中返回 TRUE 或 FALSE:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
取决于该触摸参数的位置。实际上,这是 Apple 在其 WWDC 会议视频之一中建议的方式。而且更好,因为您不必添加另一个视图并填满内存。
据我所知,你必须自己写。
点击手势可让您设置用多少个手指响应多少次点击,但它们中的大多数并没有提供很多帮助。