IOS 可拖动对象不保存位置

IOS draggable objects not saving position

我目前有一个包含多个按钮和一个文本字段的视图。用户可以四处拖动按钮,完成后与文本字段进行交互。使用 UIPanGestureRecognizer 拖动按钮似乎可行,但是一旦用户与文本字段交互,所有按钮都会弹回到原来的位置。

我希望在拖动按钮后保存按钮的新位置,或者至少在与同一视图中的其他对象交互时不会恢复到其原始位置。

我附上了我的手势识别器的代码:

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {

CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
                                     recognizer.view.center.y + translation.y);
//[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
UIButton *button = (UIButton*)recognizer.view;
if (recognizer.state == UIGestureRecognizerStateEnded)
{

    button.center = recognizer.view.center;
    [recognizer setTranslation:CGPointMake(0, 0) inView:self.view];

}

}

感谢您的帮助。

确保按钮未使用自动版式进行处理。如果您在 IB 中工作,请确保从按钮中删除所有限制。或者,如果您想继续使用自动布局,则更新按钮上的约束而不是更新它的中心位置。您可以通过删除所有旧约束并设置新约束来将按钮定位在您想要的位置。

短版

如果要移动按钮,请移除对按钮的约束