Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>UIGestureRecognizer is recommended by Apple for recent iOSes. You can use it not only for UIButton, but also for UIView (especially UIImageView in your case), etc. So I would like to recommend it.</p> <p>In the interface:</p> <pre><code>@interface TestDragViewController : UIViewController { IBOutlet UIImageView *dragImage; CGPoint originalCenter; } </code></pre> <p>In viewDidLoad, plz remember to enable userInteraction:</p> <pre><code>- (void)viewDidLoad { [super viewDidLoad]; UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(dragGesture:)]; [dragImage addGestureRecognizer:panGesture]; [dragImage setUserInteractionEnabled:YES]; } </code></pre> <p>And in its selector, I just set animation to visualize the returning effect:</p> <pre><code>#pragma mark - #pragma mark UIPanGestureRecognizer selector - (void) dragGesture:(UIPanGestureRecognizer *) panGesture{ CGPoint translation = [panGesture translationInView:self.view]; switch (panGesture.state) { case UIGestureRecognizerStateBegan:{ originalCenter = dragImage.center; } break; case UIGestureRecognizerStateChanged:{ dragImage.center = CGPointMake(dragImage.center.x + translation.x, dragImage.center.y + translation.y); } break; case UIGestureRecognizerStateEnded:{ [UIView animateWithDuration:kImageReturnTime animations:^{ dragImage.center = originalCenter; } completion:^(BOOL finished){ NSLog(@"Returned"); }]; } break; default: break; } [panGesture setTranslation:CGPointZero inView:self.view]; } </code></pre> <p>Cheers,</p> <p>Tommy</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload