ISO -touches 手势移动限位

  • (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];
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值