TextField, закрывающий кнопку UIAlertView - PullRequest
2 голосов
/ 08 января 2011

Я использую UIAlertView с тремя кнопками: «Отклонить», «Отправить счет» и @ «Просмотреть таблицу лидеров».UIAlertView также содержит UITextField с именем пользователя.В настоящий момент UITextField «username» покрывает одну из кнопок в UIAlertView.Я просто хотел узнать, как я могу остановить UITextField от покрытия одной из кнопок, т.е. переместить кнопки вниз.

Вот изображение того, что происходит:

снимок экрана http://img684.imageshack.us/img684/3055/screenshot20110108at191.png

А вот и мой код:

[username setBackgroundColor:[UIColor whiteColor]];
[username setBorderStyle:UITextBorderStyleRoundRect];
username.backgroundColor = [UIColor clearColor];
username.returnKeyType = UIReturnKeyDone;
username.keyboardAppearance = UIKeyboardAppearanceAlert;
username.placeholder = @"Enter your name here";
username = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)];
username.borderStyle = UITextBorderStyleRoundedRect;
[username resignFirstResponder];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Congratulations" 
                                                message:[NSString stringWithFormat:@"You tapped %i times in %i seconds!\n", tapAmount, originalCountdownTime] 
                                               delegate:self 
                                      cancelButtonTitle:@"Dismiss" 
                                      otherButtonTitles:@"Submit To High Score Leaderboard", @"View Leaderboard", nil];
alert.tag = 01;
[alert addSubview:username];
[alert show];
[alert release];

Ответы [ 4 ]

3 голосов
/ 08 января 2011

Я думаю, вам нужно добавить несколько новых строк и последний пробел в конце строки сообщения.

[NSString stringWithFormat:@"You tapped %i times in %i seconds!\n\n\n ", tapAmount, originalCountdownTime]
1 голос
/ 24 января 2011

Вот класс замены UIAlertView, который поддерживает пользовательский ввод, пользовательскую ширину и многое другое:

https://github.com/TomSwift/TSAlertView

0 голосов
/ 22 ноября 2012

У меня была такая же проблема, ваш код имеет следующее условие

[alert addSubview:username];
[alert show];

добавить поле UIText после [alert show];как

 [NSString stringWithFormat:@"You tapped %i times in %i seconds!\n\n\n ", tapAmount, originalCountdownTime];
 [alert show];
 [alert addSubview:username];

Вот и все. отлично работает.

0 голосов
/ 08 января 2011

Вы не должны использовать UIAlertView таким образом.Он никогда не предназначался для такого типа взаимодействия с пользователем и настройки просмотра:

Из Руководства по интерфейсу пользователя iOS:

Вы можете указать текст требуемогозаголовок и дополнительное сообщение, количество кнопок и содержание кнопок в предупреждении.Вы не можете настроить ширину или внешний вид фона самого представления оповещения или выравнивание текста (выравнивание по центру).

Возможно, вместо этого стоит рассмотреть возможность создания настраиваемого представления?

...