2013-02-16 21 views
1

我試圖使用UIPanGestureRecognizer在屏幕上移動一個對象。我的平移代碼似乎很好。我可以輕鬆地移動我的物體。但是當我放開物體時,它會回到原來的位置;它不會留在我平移它的地方。Pan-able視圖不停留在我使用UIPanGestureRecognizer平移它的地方

pan-able對象是一個簡單的UIView,它在我的主self.view字段中移動。例如,我使用XCode中的對象palate添加了UIPanGesture,而不是在viewDidLoad中的代碼中手動添加。

在state =開始的時候,我應用了一個變換來稍微增加比例。 (這也不起作用,但這是另一回事)。

任何人都可以告訴我我要去哪裏嗎?

- (IBAction)bucketTouch:(UIPanGestureRecognizer *)recognizer { 
switch ([recognizer state]) { 
    case UIGestureRecognizerStateBegan:{ 
     [UIView animateWithDuration:.2 animations:^{ 
      self.pail.transform = CGAffineTransformMakeScale(1.25, 1.25); 
     }]; 
    } 
     break; 

    case UIGestureRecognizerStateChanged:{ 
     CGPoint centerPoint = self.pail.center; 
     CGPoint newPoint = [recognizer translationInView:self.view]; 
     CGPoint finalPoint = CGPointMake(centerPoint.x + newPoint.x, centerPoint.y + newPoint.y); 
     self.pail.center = finalPoint; 
     [recognizer setTranslation:CGPointZero inView:self.view]; 
    } 
     break; 

    case UIGestureRecognizerStateEnded:{ 
     [self.view sendSubviewToBack:self.pail]; 
     [UIView animateWithDuration:.2 animations:^{ 
      self.pail.transform = CGAffineTransformIdentity; 
     }]; 
    } 
     break; 

    default: 
     break; 
} 

}

在此先感謝。 :-)

回答

0

我發現視圖WAS的確在正確移動,但CGAffineTransformIdentity將它放回原來的框架位置,在recognizer.state = ends。

相關問題