這個網站在解釋如何使用UIPanGestureRecognizer移動UIImageView時非常有幫助,但是我有一個程序需要移動(即移動)多於一個UIImageView和我的生活,我無法找到如何做到這一點的例子。如何使用UIPanGestureRecognizer移動2個或更多的UIImageView
我明白一個UIPanGestureRecognizer分配給UIView,但不能在UIView中平移任何UIImageView,我只知道代碼只能用UIView平移一個UIImageView,如下面的代碼所示。
這是我用過的代碼。
- (void)viewDidLoad {
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
[_canvas addGestureRecognizer:panRecognizer];
[super viewDidLoad]; }
-(void)move:(id)sender {
CGPoint translatedPoint = [(UIPanGestureRecognizer*)sender translationInView:_canvas];
if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateBegan) {
_firstX = [photoImage center].x;
_firstY = [photoImage center].y;
}
translatedPoint = CGPointMake(_firstX+translatedPoint.x, _firstY+translatedPoint.y);
[photoImage setCenter:translatedPoint]; }
我可以平移一個名爲photoImage的UIImageView,但知道代碼看起來像是平移多個UIImageView。
非常感謝您的幫助。
感謝您的幫助@Yadyn。這裏是修改過的代碼,但只有photoImage2 UIImageView會平移。 - (無效)viewDidLoad中{ ... [光象setUserInteractionEnabled:YES]; [photoImage2 setUserInteractionEnabled:YES]; [photoImage addGestureRecognizer:panRecognizer]; [photoImage2 addGestureRecognizer:panRecognizer]; (void)move:(id)sender { ... _firstX = [(UIPanGestureRecognizer *)sender locationInView:self.view] .x; _firstY = [(UIPanGestureRecognizer *)sender locationInView:self.view] .y; } ... [(UIPanGestureRecognizer *)sender view] .center = translatedPoint; } – gobsofrob
UIPanGestureRecognizer * recognitionizer =(UIPanGestureRecognizer *)sender; UIView * selectedView = [識別器視圖]; \t CGPoint point = [識別器translationInView:self.view]; \t 如果([識別器狀態] == UIGestureRecognizerStateBegan){ \t firstX = selectedView.center.x; \t firstY = selectedView.center。Ÿ; } \t point = CGPointMake(firstX + point.x,firstY + point.y); [selectedView setCenter:point]; \t 如果([識別器狀態] == UIGestureRecognizerStateEnded){ \t [selectedView setCenter:point]; } 我使用此代碼,無論有多少視圖,它都可以正常工作 – Hanon