Red Bull X-Fighters - новое видео Tattoo салон в iPhone
Авг 11

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

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

Теперь пропишите функцию действия, установив ее соответствие событию “textfieldEditing Did Begin“, как показано ниже. На иллюстрации — прототип функции.

1
-(IBAction)startEdit;

Данная функция вызывается каждый раз, когда пользователь щелчком по текстовому полю запускает редактирование. Теперь необходим основной код, смещающий вверх текстовое поле. Вот как он будет выглядеть:

1
2
3
4
5
6
7
8
9
10
11
-(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“, как на рис. ниже.

В функцию действия добавьте приведенный ниже код:

1
2
3
4
5
6
7
8
9
10
11
12
-(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“. Надеюсь, теперь проблем с текстовым полем не возникнет.

Исходный код скачать можно [здесь]

Текст оригинальной статьи на английском языке [здесь]

Уважаемые читатели, данный материал был переведен и подготовлен к публикации проектом LookApp.ru, при публикации на другом сайте ссылка на LookApp.ru обязательна.

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...


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

  1. 1. Jonathan Says:

    You do not have the rights to this blog post. I am the webmaster of http://www.iphoneapptuts.com — please remove this blog post.

  2. 2. Artem Says:

    Hello! I translate you article and post in my blog with backlink to you site. Any problem? Write on lookapp@gmail.com

  3. 3. Jonathan Says:

    As long as you post back links that’s fine.

Оставьте комментарий