0

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

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

我有一个UIAlertView显示UIProgressView应用程序正在下载和解压缩的时间,当它完成时,我使用该方法添加到UIAlertViewa 按钮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) 的左上角谢谢!

4

1 回答 1

3

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

但是,更好的解决方法是在下载(您拥有的)UIView带有UILabel包含消息的将军时显示进度指示器。然后,完成后,更改标签以显示“Instalación finalizada”消息,并在其下方显示一个按钮。我知道,它似乎只是在复制你已经拥有的东西,但在你的描述中我没有看到需要使用UIAlertView.

于 2009-09-11T13:49:26.530 回答