使用 UIPanGestureRecognizer 移动时图片总是回到原点

Posted

技术标签:

【中文标题】使用 UIPanGestureRecognizer 移动时图片总是回到原点【英文标题】:Picture always move back to the origin during move with UIPanGestureRecognizer 【发布时间】:2015-05-18 05:34:59 【问题描述】:

我尝试以编程方式实现平移手势,但是当我尝试它时,uiview 总是在移动过程中移回超级视图内的原点位置。所以实际上它从原点来回跳转到新位置。 有谁知道问题出在哪里?

代码:

- (void)setGesture

    self.userInteractionEnabled = YES;
        UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(detectPan:)];
        self.gestureRecognizers = @[panRecognizer];




- (void) detectPan:(UIPanGestureRecognizer *) penGes

    if ((penGes.state == UIGestureRecognizerStateChanged) ||
        (penGes.state == UIGestureRecognizerStateEnded))
    

        CGPoint translation = [penGes translationInView:self.superview];
        self.center = CGPointMake(self.lastLocation.x + translation.x,
                              self.lastLocation.y + translation.y);

       [penGes setTranslation:CGPointZero inView:self];
    

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    // Promote the touched view
    [self.superview bringSubviewToFront:self];

    // Remember original location
    self.lastLocation = self.center;

【问题讨论】:

【参考方案1】:

我认为您的翻译与自动布局约束冲突。 看看this answer 来自matt 的关于转换和自动布局的信息。

【讨论】:

以上是关于使用 UIPanGestureRecognizer 移动时图片总是回到原点的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 UIPanGestureRecognizer 移动对象时会有延迟?

UIPanGestureRecognizer ***视图未获取事件,子视图使用它们

在 UITableView 上滑动删除以使用 UIPanGestureRecognizer

在 UIPanGestureRecognizer 中使用velocityInView

使用 UIPanGestureRecognizer 拖动 + 旋转触摸下车

使用 UIPanGestureRecognizer 移动和缩放 UIView