HSCButton.h
#import <UIKit/UIKit.h> @interface HSCButton : UIButton { CGPoint beginPoint; } @property (nonatomic) BOOL dragEnable; @end
HSCButton.m
#import "HSCButton.h" @implementation HSCButton @synthesize dragEnable; - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor clearColor]; } return self; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { if (!dragEnable) { return; } UITouch *touch = [touches anyObject]; beginPoint = [touch locationInView:self]; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { if (!dragEnable) { return; } UITouch *touch = [touches anyObject]; CGPoint nowPoint = [touch locationInView:self]; float offsetX = nowPoint.x - beginPoint.x; float offsetY = nowPoint.y - beginPoint.y; self.center = CGPointMake(self.center.x + offsetX, self.center.y + offsetY); }