gpt4 book ai didi

ios - 当用户开始触摸 ImageView 时移动 UIImageView

转载 作者:行者123 更新时间:2023-12-03 16:57:55 25 4
gpt4 key购买 nike

我在 UIView 中有一些 ImageView 。这是我的代码:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *myTouch = [touches anyObject];
CGPoint startPoint = [myTouch locationInView:self];
imageview.center = CGPointMake(startPoint.x, startPoint.y);
}

这样,用户可以单击屏幕上的任意位置, ImageView 将传送到触摸位置并从那里移动。我想限制它,以便只有当用户开始单击 ImageView 时它才会响应。我怎样才能做到这一点?

最佳答案

我会通过添加到 ImageView 中的手势识别器来完成此操作。如果您使用 UIPanGestureRecognizer ,当用户开始从 ImageView 内部拖动时,它将被触发,并且您可以使用 locationOfTouch:inView: 方法来确定定位位置拖动的 ImageView

更新更多细节:UIGestureRecognizer(包含一些子类的抽象类,或者您可以自己创建)是附加到 UIView 的对象,并且能够识别手势(例如 UIPanGestureRecogniser 知道用户何时平移,UISwipGestureRecognizer 知道用户何时平移)滑动)。

您创建一个手势识别器并将其添加到 View 中,如下所示:

UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognizerMethod:)];
[self.imageView addGestureRecognizer:panGestureRecognizer];

然后在你的gestureRecognizerMethod实现中你可以检查手势的状态,并调整 ImageView 的位置

- (void)gestureRecognizerMethod:(UIPanGestureRecognizer *)recogniser
{
if (recognizer.state == UIGestureRecognizerStateBegan || recognizer.state == UIGestureRecognizerStateChanged)
{
CGPoint touchLocation = [recognizer locationInView:self.view];
self.imageView.center = touchLocation;
}
}

关于ios - 当用户开始触摸 ImageView 时移动 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16244714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com