如何在显示UIAlertView后显示UIAlertView上的按钮

时间:2009-09-11 12:56:56

标签: objective-c iphone cocoa-touch uialertview

我是新手,用目标C开发。

我正在编写一段代码,为我的应用程序安装一个插件。它下载.zip包,解压缩并将一些数据复制到我的sqlite数据库。

我有一个UIAlertView在应用程序正在下载和解压缩时显示UIProgressView,完成后我使用UIAlertView方法添加到addButtonWithTitle按钮。

我不知道为什么我的按钮出现在我的UIAlertView的左上角。

这是我的一段代码:

ventana = [[UIAlertView alloc] initWithTitle:[[NSString alloc] initWithFormat: @"Instalando %@", codigo] 
                                             message:@"Por favor, no apague el dispositivo ni cierre la aplicación." delegate:nil cancelButtonTitle:nil  otherButtonTitles: nil];

actividad = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
actividad.frame = CGRectMake(20, 110, 20, 20);

progreso = [[UIProgressView alloc] initWithFrame:CGRectMake(50, 115, 215, 9)];
[ventana addSubview:actividad];
[actividad startAnimating];
[ventana addSubview:progreso];
[ventana show];

-- some stuff (downloading, uncompressing, updating my UIProgressView...) --
[progreso removeFromSuperview];
[actividad removeFromSuperview];
[ventana addButtonWithTitle:@"Aceptar"];
ventana.message = @"Instalación finalizada";

我有图片,但由于我是新用户,因此无法在此发布。

任何人都知道为什么我的按钮出现在我的UIAlertView(ventana)的左上角 谢谢!

1 个答案:

答案 0 :(得分:3)

您使用UIAlertView的方式有点......糟糕。您应该从不显示带有0按钮的UIAlertView,并将其用作“不关闭设备”消息是一个坏主意。警报视图的“已接受”用途是告诉用户刚刚发生的重要事情。但是,如果您坚持,默认情况下您应该有一个取消按钮,以便他们可以在需要时停止操作,然后在完成后添加按钮。尝试将按钮添加到不存在的按钮列表时,UIAlertView可能会混淆(因为您使用0按钮对其进行了初始化)。

然而,更好的方法是在一般UIView上下载(您有)时显示进度指示,其中UILabel包含该消息。然后,当它完成后,更改标签以显示“Instalaciónfinalizada”消息,并在其下方显示一个按钮。我知道,它似乎只是复制你已有的东西,但在你的描述中没有任何地方我看到要求使用UIAlertView