2013-05-30 58 views
0

目前我有一个UITableView填充从服务器收集的JPG文件。UIActivityIndi​​catorView显示后presentViewController

问题是,当我选择一个单元格时,活动视图控制器需要一段时间才能显示,因为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:^{}]; 

} 
+0

这是人们面对表视图时相当常见的问题,您需要异步加载图像。 [SDWebImage](https://github.com/rs/SDWebImage)是最好的选择。 – Mar0ux

+0

我不确定在SDWebImage上,我试图按照说明安装那里的github,但是当我完成了所有的步骤,并去建立我有多个错误,你能提供给我任何其他的链接,让它的工作? @ Mar0ux – teejay

+0

SDWebImage上的两件事:'iOS 5.0最低部署版本'并使用ARC。但我很困惑:你的问题只是在加载图像时冻结或者其他的问题? – Mar0ux

回答

0

的问题是,你正在下载同步图像:

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

你需要改变这一个异步下载并呈现视图控制器下载完成后。

+0

我不是加载一个新的视图控制器,我加载这样的活动视图控制器........ http://www.techotopia.com/images/d/df/Iphone_ios6_facebook_example_chooser.png @Wain – teejay

+0

你'仍然使用presentViewController:并且需要在异步下载完成后完成。 – Wain

相关问题