[英]IOS: drag imageView not from center
我有以下代码来拖动imageView:
开始:
CGPoint point = [touch locationInView:self];
[imageView setCenter:point];
感动:
CGPoint point = [touch locationInView:self];
[imageView setCenter:point];
此代码允许在我的手指下一直拥有imageview并将其移动到其中心。 但是我想要让我不仅可以从图像视图的中心拖动图像视图,而且还可以从图像视图的另一点拖动图像视图...并且如果我从该图像视图中移开也不能将其拖动...可以帮助我吗?
您需要确定触摸的移动方式,而不仅仅是将中心点设置为触摸点。
将接触点存储在变量中。
开始接触...
storedPoint = [touchLocationInView:self];
然后触摸移动...
CGPoint currentPoint = [touch locationInView:self];
CGPoint vector = CGPointMake(currentPoint.x - storedPoint.x, currentPoint.y storedPoint.y);
[imageView setCenter:CGPointMake(imageView.center.x + vector.x, imageView.center.y + vecotr.y)];
storedPoint = currentPoint;
反正就是这样。
要忽略触摸,您可以在触摸中开始说...
if (!CGRectContainsPoint(imageView.frame, [touch locationInView:self])
{
//ignore touch
trackTouches = NO;
}
trackTouches = YES;
(trackTouches是一个类var)
然后在touchesMoved中,仅当trackTouches == YES时才执行操作。
您需要:A)测试触摸是否在imageView中B)计算触摸与imageView中心之间的差。 知道x / y的差异后,您可以执行一些简单的数学运算来相对于用户在imageView上触摸的位置移动中心。
这个站点上有很多有关A的示例,B应该很简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.