You can use UIPanGestureRecognizer like so:
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) UIView *snapshotView;
@property (weak, nonatomic) IBOutlet UIButton *moveMeButton;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIPanGestureRecognizer *recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[self.moveMeButton addGestureRecognizer:recognizer];
}
- (void)handlePan:(UIPanGestureRecognizer*)recognizer {
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZero inView:self.view];
}
@end
Cheers.