繁体   English   中英

iOS:不从中心拖动imageView

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM