0

目前我有一个 UITableView 填充了从服务器收集的 JPG 文件。

问题是当我在单元格上选择时,由于 JPG 的大小约为 3mb,因此活动视图控制器需要一段时间才能出现。

我想要做的是在单元格中放置一个活动指示器,因此当它被选中时,它将显示指示器,直到显示活动视图控制器然后消失。

然而,目前发生的情况是,当我选择单元格时,图像已下载并部分冻结,然后弹出活动视图控制器,允许“保存到相机胶卷”,但当控制器出现时,指示器也会出现在错误的时间。我也尝试在显示视图控制器之前启动动画。

到目前为止,这是我的代码

// creating spinner activity

UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.frame = CGRectMake(0, 0, 24, 24);
UITableViewCell *Cell = [tableView cellForRowAtIndexPath:indexPath];
Cell.accessoryView = spinner;

//popup menu for save to camera roll
UIImage * image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:path]]];

UIActivityViewController* activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObject:image]
                                  applicationActivities:nil];

//check to see if jpg file
if([ext isEqualToString:@"jpg"]) {


    [spinner startAnimating];

    [self presentViewController:activityViewController animated:YES
                     completion:^{}];

}
4

1 回答 1

0

问题是您正在同步下载图像:

UIImage * image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:path]]];

您需要将其更改为异步下载并在下载完成后呈现视图控制器。

于 2013-05-30T07:22:38.343 回答