Уроки iPhone SDK: Эксперементируем с панелью состояния (”Status Bar”) Super Yum Yum 3
Май 23

uialertview-300x158Предупредительные надписи встречаются часто и выполняют самые разные функции. Часто они выводятся при первом запуске в качестве приветствия. С их помощью программа информирует пользователя о нужных и важных моментах, просит подождать, сообщает об ошибках, предупреждает.

Выглядят такие надписи просто отлично и подходят к интерфейсу практически любой игры/приложения. Пользователю может показаться, что перед ним плод тяжкого труда, тогда как на деле это всего пара строк кода.

Для вывода представленного выше предупреждения (”UIAlertView“) необходимо добавить следующее:

1
2
3
UIAlertView *simpleAlert = [[UIAlertView alloc] initWithTitle:@"Alert's title" message:@"This is an alert's message." delegate:self cancelButtonTitle:@"and the" otherButtonTitles:@"buttons",nil];
[simpleAlert show];
[simpleAlert release];

Предупреждение можно вывести в любой момент, например, в методе “viewDidLoad” или по нажатию кнопки. Если в предупреждении больше двух кнопок, отображаться они будут в столбец, а не в строку.

alertview3buttons

Если не добавить к классу протокол “UIAlertViewDelegate” и не внедрить метод “alertView:clickedButtonAtIndex:“, предупреждение исчезнет лишь после щелчка по одной из кнопок. Протокол добавляется в заголовочный файл класса:

1
@interface MyView : UIViewController <UIAlertViewDelegate> {

При наличии более чем одного протокола разделите их запятыми: <oneProtocol, theOtherProtocol>. Теперь в реализацию файла (.m) добавьте следующий метод:

1
2
3
4
5
6
7
8
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
// действие
}
else if (buttonIndex == 2) {
// действие
}
}

Как обычно, у первой кнопки (в 99% случаев это <cancel>) индекс = 0. Если есть несколько “сложных предупреждений”, у каждого из которых своя задача, лучше использовать для них тэги и проверять в “alertView:clickedButtonAtIndex:“, какое значение у обратившегося к этому методу тэга предупреждения.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
UIAlertView *complexAlert = [[UIAlertView alloc] initWithTitle:@"Complex Alert" message:@"Select an action" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Sure",@"Not sure",nil];
complexAlert.tag = 1;
[complexAlert show];
[complexAlert release];

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if ([alertView tag] == 1) {
if (buttonIndex == 1) {
// действие
}
else if (buttonIndex == 2) {
// действие
}
}
else {
// действие
}
}

Вот практически и все, что нужно знать о предупреждениях. Чтобы окно через пару секунд исчезло (например, в случае с приветствием или активацией опции по умолчанию), руководствуйтесь приведенным ниже примером:

1
2
3
4
5
6
7
8
9
10
autoAlertView = [[UIAlertView alloc] initWithTitle:@"Auto-dismissed Alert" message:@"This alert will be dismissed in 5 seconds." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
userDismissed = NO;
[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(dismissAlert) userInfo:nil repeats:NO];
[autoAlertView show];

-(void)dismissAlert {
if (userDismissed) return;
[autoAlertView dismissWithClickedButtonIndex:0 animated:YES];
[autoAlertView release];
}

Вот и все. Удачи. :)

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

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

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

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


One Response to “Уроки iPhone SDK: Показ предупреждений (Alerts) в приложениях”

  1. 1. Eowaos Says:

    Было бы еще неплохо урок о красивых кастомизированных алертах

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