Новость из категории: Информация

Уроки iPhone SDK: Анимация представления в iPhone SDK

Уроки iPhone SDK: Анимация представления в iPhone SDK

Приходилось ли вам задумываться над тем, как вводить данные пользователю, если текстовое поле расположено в нижней части представления? Появляющаяся при щелчке на текстовом поле клавиатура будет его скрывать. Решение очевидно — анимировать текстовое поле, сместив его вверх.

Объявите экземпляр “UITexField” и в редакторе Interface Builder установите его соответствие реальному текстовому полю (см. рис. ниже).

Уроки iPhone SDK: Анимация представления в iPhone SDK

Теперь пропишите функцию действия, установив ее соответствие событию “textfieldEditing Did Begin“, как показано ниже. На иллюстрации — прототип функции. Если это не ваши первые шаги в разработке приложения для iOS
(https://freelancehunt.com/freelancers/mobilnyie-prilozheniya/ios-iphone-ipad), то здесь у вас точно не возникнет никаких затруднений.

-(IBAction)startEdit;

Уроки iPhone SDK: Анимация представления в iPhone SDK

Данная функция вызывается каждый раз, когда пользователь щелчком по текстовому полю запускает редактирование. Теперь необходим основной код, смещающий вверх текстовое поле. Вот как он будет выглядеть:
-(IBAction)startEdit {
[UIViewbeginAnimations: @"moveField"context: nil];
[UIViewsetAnimationDelegate: self];
[UIViewsetAnimationDuration: 0.5];
[UIViewsetAnimationCurve: UIViewAnimationCurveEaseInOut];
txtField.frame = CGRectMake(txtField.frame.origin.x,
txtField.frame.origin.y - 200,
txtField.frame.size.width,
txtField.frame.size.height);
[UIViewcommitAnimations];
}

Величину 200 можно откорректировать по своему усмотрению (определяет величину смещения текстового поля).

По окончании редактирования текстовое поле нужно будет вернуть на место. В этом нам поможет другая функция, привязанная к действию с текстовым полем “Did End on Exit“, как на рис. ниже.
Уроки iPhone SDK: Анимация представления в iPhone SDK

В функцию действия добавьте приведенный ниже код:
-(IBAction)endEdit {
[txtFieldresignFirstResponder];
[UIViewbeginAnimations: @"moveField"context: nil];
[UIViewsetAnimationDelegate: self];
[UIViewsetAnimationDuration: 0.5];
[UIViewsetAnimationCurve: UIViewAnimationCurveEaseInOut];
txtField.frame = CGRectMake(txtField.frame.origin.x,
txtField.frame.origin.y + 200,
txtField.frame.size.width,
txtField.frame.size.height);
[UIViewcommitAnimations];
}

Функция “resignFirstResponder” будет отвечать за исчезновение клавиатуры.

Точно по такому же принципу можно перемещать и анимировать любое представление, наследуемое от “UIView“. Надеюсь, теперь проблем с текстовым полем не возникнет.

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Перевести статью:

Похожие новости

Комментарии

Информация

^ Наверх