2010-11-10 28 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會議視頻之一中提出的方式。而且這樣做更好,因爲您不必添加其他視圖並填充內存。