ISO -touches 手势移动限位
2016-03-01 22:41
274 查看
(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];
}
}
{
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];
}
}
相关文章推荐
- ArrayAdapter和SimpleAdapter详解
- hadoop启动jps命令不存在遇到的问题
- 关于继承的prototype , _proto_, constructor
- 用NFC简化蓝牙配对并互相发送对方的蓝牙的MAC地址
- android自定义电池View
- 关于主配置和虚拟主机配置
- 截图软件
- 算法_9:随机算法
- 10+ 最流行的 jQuery Tree 菜单插件
- 开源一个完整的iOSApp《丁丁美图》供初学者学习
- javascript闭包
- 接口和抽象类有什么区别
- 关于方法区内存溢出!
- 无线智能小车(一)
- 【02】SimpleAdapter和OnScrollListener
- Collocations
- struts(tags)
- 搜索(DLX):HOJ 1017 - Exact cover
- 单例模式
- bzoj 1059: [ZJOI2007]矩阵游戏