2010-11-10 133 views
8

我想知道是否有办法限制在GestureRecognizers中的UIViews的大小或移动。UIGestureRecognizer移动限制

当然,我可以写自己的限制代码,但是如果我们可以设置一些属性或某些限制条件,我们就会知道。

例如在UIPanGestureRecognizer我要限制的视图的特定的CGRect内加入到PanGesture的移动,所以是有任何的方式,如果视图被外出我的边界框架的我可以设置包围矩形等感测PanGesture它不会允许它。

+0

任何人?.......... – cocos2dbeginner 2011-06-07 12:04:54

回答

0

据我所知,你必须自己写。

轻拍手势让您设置多少个水龙头,你有多少手指响应,但其中大多数不提供大量的帮手。

1

我认为最简单的方法是在该矩形中创建一个不可见的视图并向其添加手势。 示例: 您想检测矩形内{a,b,c,d}内的视图X中的移动。 在{a,b,c,d} rect中创建一个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; 

。其实这是苹果在其WWDC会议视频之一中提出的方式。而且这样做更好,因为您不必添加其他视图并填充内存。