UIAlertView有3个文本字段和3个标签相互重叠

时间:2012-10-18 18:51:15

标签: ios xcode uialertview

我正在尝试使用3个TextFields和3个标签创建一个UIAlertView。

但是使用我当前的代码,他们只是互相讨论,我试图改变AlertView的框架,我试图使用CGAffineTransform但它们都不起作用。

这是我的代码:

UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Sign in" message:@"\n\n\n\n\n" delegate:self cancelButtonTitle:@"Stop" otherButtonTitles:@"Sign in",nil];

UILabel *customerIdLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 55, 65, 21)];

customerIdLabel.tag =1;
customerIdLabel.text = @"Customer id: ";
[myAlertView customerIdLabel];

UITextField *customerIdField = [[UITextField alloc] initWithFrame:CGRectMake(89, 50, 160, 30)];

customerIdField.tag = 2;
customerIdField.placeholder = @"Fill in your customer id";
[myAlertView customerIdField];

然后还有两个组合。

以下是我尝试过的转换:

CGAffineTransform myTransform = CGAffineTransformMakeScale(1.0, 0.5f);
[myAlertView setTransform:myTransform];

这就是我得到的:

enter image description here

3 个答案:

答案 0 :(得分:3)

我很确定你不应该像这样使用UIAlertViews。您应该设置标题,消息等,并使用[alertview show]。 documentation似乎非常清楚它是一个原样的类.UIAlertViewStyle可能是你可以看到的东西,但选项是1个文本字段,1个安全字段或用户名和密码字段。< / p>

您最好的选择是使用新的UIViewController并使用presentViewController:animated:completion:调用。

答案 1 :(得分:0)

我通过不更改UIAlertView但在显示时添加清晰视图(可以使用空格填充)并在正确的位置添加文本字段(注意旋转发生时)。然后,让水龙头通过视图到达UIAlertView。这已经在商店的3个应用程序中通过Apple。

答案 2 :(得分:0)

在xcode 5中的新SDK之前,您可以将子视图添加到警报视图但不再起作用。我不得不更新一个应用程序,因为这个讨厌的代码。最好使用uipopovercontroller for ipad或显示UIView,甚至为ipad或iphone提供viewcontroller。