Настройка анимации текстового поля для перемещения текстовых полей над клавиатурой - PullRequest
1 голос
/ 22 апреля 2011

Я знаю, что на эту тему уже много. Я получил код ниже из другого вопроса, но я не знаю, как настроить его для использования. Может кто-нибудь дать мне подробное пошаговое руководство о том, как на самом деле настроить процесс перемещения текстового поля над клавиатурой, когда клавиатура поднимается, и перемещения его обратно, когда редактирование завершено.

 - (void)textFieldDidBeginEditing:(UITextField *)textField
    {
        [self animateTextField: textField up: YES];
    }


    - (void)textFieldDidEndEditing:(UITextField *)textField
    {
        [self animateTextField: textField up: NO];
    }

    - (void) animateTextField: (UITextField*) textField up: (BOOL) up
    {
        const int movementDistance = 80; // tweak as needed
        const float movementDuration = 0.3f; // tweak as needed

        int movement = (up ? -movementDistance : movementDistance);

        [UIView beginAnimations: @"anim" context: nil];
        [UIView setAnimationBeginsFromCurrentState: YES];
        [UIView setAnimationDuration: movementDuration];
        self.view.frame = CGRectOffset(self.view.frame, 0, movement);
        [UIView commitAnimations];
    }

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Когда-нибудь звонят textFieldDidBeginEditing: или textFieldDidEndEditing:?

Если нет, возможно, вы неправильно настроили делегат текстового поля.

Когда вы объявляете свое текстовое поле (или, если вы используете IB, в viewDidLoad), добавьте это: yourTextField.delegate = self;

0 голосов
/ 22 апреля 2011

Я бы настоятельно рекомендовал использовать UITableViewController и поместить ваш UITextField в таблицу. Таким образом, проблема скрытия клавиатуры решается для вас системой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...