#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 супервизора текстового поля.
Надеюсь, это поможет!