我正在使用带有三个按钮的UIAlertView:“Dismiss”,“Submit Score”和@“View Leaderboard”。 UIAlertView还包含一个名为username的UITextField。目前,UITextField“用户名”正在覆盖UIAlertView中的一个按钮。我只想知道如何阻止UITextField覆盖其中一个按钮,即按下按钮。
以下是正在发生的事情的图像:
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];
答案 0 :(得分:3)
我认为您需要在消息字符串的末尾添加一些新行和最后一个空格。
[NSString stringWithFormat:@"You tapped %i times in %i seconds!\n\n\n ", tapAmount, originalCountdownTime]
答案 1 :(得分:1)
这是一个UIAlertView替换类,支持用户输入,自定义宽度等:
答案 2 :(得分:0)
我有同样的问题,你的代码有以下条件
[alert addSubview:username];
[alert show];
在[alert show]之后添加UITextfield;如
[NSString stringWithFormat:@"You tapped %i times in %i seconds!\n\n\n ", tapAmount, originalCountdownTime];
[alert show];
[alert addSubview:username];
多数民众赞成。工作正常。
答案 3 :(得分:-1)
您不应该以这种方式使用UIAlertView
。它从未打算用于此类用户交互和查看自定义:
From the iOS Human Interface Guidelines:
您可以在警报中指定所需标题和可选消息的文本,按钮数量以及按钮内容。您无法自定义警报视图本身的宽度或背景外观,也无法自定义文本的对齐方式(中心对齐)。
或许考虑建立一个自定义视图?