Проблема с перетаскиванием текстового поля

#iphone #objective-c

#iPhone #objective-c

Вопрос:

моя проблема в том, что текстовое поле не сохраняет последнюю позицию, поэтому, когда я удалил свое текстовое поле, он вернулся в исходное положение

 - (void)panPiece:(UIPanGestureRecognizer *)gestureRecognizer
{
    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer     state] == UIGestureRecognizerStateChanged) {
        CGPoint translation = [gestureRecognizer translationInView:self.view];

        //textfieldToAdd.center = CGPointMake([textfieldToAdd center].x   translation.x, [textfieldToAdd center].y   translation.y);
        textfieldToAdd.center = CGPointMake(translation.x, translation.y);  
    }
}
  

Ответ №1:

Насколько я знаю, когда вы используете panGestureRecognizer, вы должны сбрасывать его перевод на 0 каждый раз, когда вы его используете. Поэтому я бы рекомендовал вам переписать эту часть кода следующим образом:

 - (void)panPiece:(UIPanGestureRecognizer *)gestureRecognizer
{
    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer     state] == UIGestureRecognizerStateChanged) 
    {
        CGPoint translation = [gestureRecognizer translationInView:self.view];
        CGPoint textFieldCenter = textfieldToAdd.center;

        textfieldToAddCenter.x  = translation.x;
        textfieldToAddCenter.y  = translation.y;
        textfieldToAdd.center = textfieldCenter;

        [gestureRecognizer setTranslation:CGPointZero inView:self.view];
    }
}  

Другой возможной причиной может быть вызов метода layoutSubviews супервизора текстового поля.

Надеюсь, это поможет!