2011-01-08 5 views
2

Я использую UIAlertView с тремя кнопками: «Dismiss», «Submit Score» и «View Leaderboard». UIAlertView также содержит имя пользователя UITextField. В настоящее время UITextField «имя пользователя» охватывает одну из кнопок в UIAlertView. Я просто хотел знать, как я могу остановить UITextField от покрытия одной из кнопок, т. Е. Переместите кнопки вниз.TextField Covering Кнопка UIAlertView

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

screenshot 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]; 

ответ

3

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

[NSString stringWithFormat:@"You tapped %i times in %i seconds!\n\n\n ", tapAmount, originalCountdownTime] 
+0

Спасибо, по какой-то причине, что еще не исправил его? –

+0

Вы также поменяли надпись 'CGRectMake'? Сделали свой «origin.y» ниже? – donkim

-1

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

From the iOS Human Interface Guidelines:

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

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

+0

Даже если это не указано в HIG от Apple, это довольно распространенное использование, и Apple использует его в некоторых своих приложениях. – Jilouc

+0

Где Apple использует 'UIAlertView' с' UITextField'? Мне было бы любопытно это увидеть. – Bringo

+2

, когда он запрашивает пароль при загрузке из Appstore – RyanTCB

0

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

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

добавьте UITextfield после [alert show]; as

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

Thats all.working fine.

Смежные вопросы