我会通过添加到图像视图中的手势识别器来做到这一点。如果您使用 a UIPanGestureRecognizer
,它将在用户开始从图像视图内部拖动时触发,您可以使用该locationOfTouch:inView:
方法确定拖动的图像视图的位置
更新更多细节:UIGestureRecognizer(包含一些子类的抽象类,或者您可以自己制作)是一个附加到 UIView 的对象,并且能够识别手势(例如 UIPanGestureRecogniser 知道用户何时平移,UISwipGestureRecognizer知道用户何时滑动)。
您创建一个手势识别器并将其添加到如下视图中:
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognizerMethod:)];
[self.imageView addGestureRecognizer:panGestureRecognizer];
然后在你的gestureRecognizerMethod实现中你可以检查手势的状态,并调整图像视图的位置
- (void)gestureRecognizerMethod:(UIPanGestureRecognizer *)recogniser
{
if (recognizer.state == UIGestureRecognizerStateBegan || recognizer.state == UIGestureRecognizerStateChanged)
{
CGPoint touchLocation = [recognizer locationInView:self.view];
self.imageView.center = touchLocation;
}
}