UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"HELOOOOOOOO" message:@"write a number of text-lines/paragraph here"
delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:@"Yes", nil];
UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12, 95, 260, 25)];
[myTextField setBackgroundColor:[UIColor whiteColor]];
[alert addSubview:myTextField];
[alert show];
如果你仔细观察,你会发现message
属性很长。我需要这个alertview首先显示标题,然后是我的长消息,然后是文本字段,最后是2个按钮。
但是,在这里说的是,由于message
太长,文本字段与按钮重叠。
我该如何解决这个问题?
答案 0 :(得分:0)
如果是iPhone,你真的不能。 UIAlertView不是为了处理输入。扩展消息以滚动视图显示,但您实际上不应该在其视图层次结构中添加UITextField(对于一个,它违反了他们的设计标准,您的应用程序可能会被固定!)。
在这种情况下,最好使用新的UIViewController来处理显示内容。
同样,UIAlertView要提供的唯一“动作”是多个按钮。
答案 1 :(得分:0)
实际上,你的信息有多长并不重要。警报视图将始终大小适合。
解决此问题的一种方法是在消息字符串的末尾添加一堆\n
,这相当于换行。
编辑:如果您的邮件太长,以至于它放在UIScrollView
中,那么除非您对主要黑客行为(包括更改界限)没有问题,否则您无法真正做到UIAlertView
,向下移动每个按钮等。)。
第二种方式仅适用于iOS 5及更高版本。您可以将UIAlertView's
alertStyle属性设置为UIAlertViewStylePlainTextInput
,该属性将显示带有文本字段的警报视图。
答案 2 :(得分:0)
使用换行符或换行符\n
:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"AlertView"message:@"\nhello:.................... \nwrite here.................. \nwrite here....................." delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:@"Yes", nil];
[alert show];
[alert release];
答案 3 :(得分:0)
在您的实施文件中实现这段代码。
- (void)willPresentAlertView:(UIAlertView *)alertView
{
alertview.frame = CGRectMake(12, 95, 260, 25); //You can set a frame that suits to your needs
}
此代理- (void)willPresentAlertView:(UIAlertView *)alertView
将在显示alerview之前调用,因此这是将帧设置为alertview的更好方法。
有关aleert视图的更多信息: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIAlertView_Class/UIAlertView/UIAlertView.html