效果图
Untitled.gif
核心代码
UITouch *touch = [touches anyObject];
CGPoint currentPosition = [touch locationInView:self];
//偏移量
float offsetX = currentPosition.x - beginpoint.x;
float offsetY = currentPosition.y - beginpoint.y;
//移动后的中心坐标
CGPoint point =CGPointMake(self.center.x + offsetX, self.center.y + offsetY);
//最大centX
CGFloat maxCenterX =main_width-self.frame.size.width*0.5+40;
//最小centX
CGFloat minCenterX =self.frame.size.width*0.5;
CGFloat miniCenterY =self.frame.size.height*0.5+60;
CGFloat maxCenterY =main_height-self.frame.size.height*0.5-40;
if( point.x>=minCenterX && point.x <=maxCenterX && point.y>= miniCenterY && point.y<= maxCenterY){
self.center = point;
}