2013-05-30 86 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

相關問題