- (void) touchesBegan:(NSSet )touches withEvent:(UIEvent )event
{
CGPoint point = [[touches anyObject] locationInView:self];
self.startpoint =CGPointMake(self.imageView.center.x - point.x,self.imageView.center.y - point.y) ;
}
-(void) touchesMoved:(NSSet )touches withEvent:(UIEvent )event
{
CGPoint point = [[touches anyObject] locationInView:self];
float dx = point.x +self.startpoint.x;
float dy = point.y + self.startpoint.y;
CGPoint newcenter = CGPointMake( dx,dy);
if((newcenter.x >= (self.imageView.frame.size.width/2.0)) && (newcenter.x <= (self.frame.size.width -self.imageView.frame.size.width/2.0)) && (newcenter.y >= (self.imageView.frame.size.height/2.0)) && (newcenter.y <= (self.frame.size.height -self.imageView.frame.size.height/2.0)))
{
[self.imageView setCenter:newcenter];
}else
{
if((newcenter.x < (self.imageView.frame.size.width/2.0)))
{
newcenter.x= self.imageView.frame.size.width/2.0;
if(newcenter.y < self.imageView.frame.size.height/2.0)
{
newcenter.y = self.imageView.frame.size.height/2.0;
}else if(newcenter.y > self.frame.size.height -self.imageView.frame.size.height/2.0)
{
newcenter.y = self.frame.size.height -self.imageView.frame.size.height/2.0;
}
}else if(newcenter.x > self.frame.size.width -self.imageView.frame.size.width/2.0)
{
newcenter.x = self.frame.size.width -self.imageView.frame.size.width/2.0;
if(newcenter.y < self.imageView.frame.size.height/2.0)
{
newcenter.y = self.imageView.frame.size.height/2.0;
}else if(newcenter.y > self.frame.size.height -self.imageView.frame.size.height/2.0)
{
newcenter.y = self.frame.size.height -self.imageView.frame.size.height/2.0;
}
}else
{
if(newcenter.y < self.imageView.frame.size.height/2.0)
{
newcenter.y = self.imageView.frame.size.height/2.0;
}else if(newcenter.y > self.frame.size.height -self.imageView.frame.size.height/2.0)
{
newcenter.y = self.frame.size.height -self.imageView.frame.size.height/2.0;
}
}
[self.imageView setCenter:newcenter];
}
}