2011-05-28 101 views
1

在我的應用程序中,使用uiimagepicker挑選圖像後,它將通過web服務進行處理。 Web處理需要一秒鐘,所以我想用活動指示器視圖創建一個灰色疊加層。UIImagePicker和覆蓋圖

我的問題是,UIImagePickerView視圖似乎停留在一切,直到處理完成。

我已經嘗試使用[myPicker dismissModalViewControllerAnimated:YES];之前加載覆蓋或處理甚至開始,但視圖仍然在屏幕上。在此之後,由於隨後

ovController = [[OverlayViewController alloc] initWithNibName:@"OverlayViewController" bundle:[NSBundle mainBundle]]; 

CGFloat yaxis = self.navigationController.navigationBar.frame.size.height; 
CGFloat width = self.view.frame.size.width; 
CGFloat height = self.view.frame.size.height; 

CGRect frame = CGRectMake(0, yaxis, width, height); 
ovController.view.frame = frame; 
ovController.view.backgroundColor = [UIColor grayColor]; 
ovController.view.alpha = 0.7; 

[self.view insertSubview:ovController.view aboveSubview:self.view]; 

我一直在使用之前[[myPicker cameraOverlayView] insertSubview:ovController.view];我解僱myPicker也試過我的疊加加載,但無濟於事。

要清楚,我試圖在UIImagePicker消失後,但在Web處理啓動之前,在屏幕上顯示「加載」覆蓋圖。

任何輸入將不勝感激。謝謝

回答

1

這聽起來像你正在主線上進行鎖定視圖更新。您可以嘗試在sperate線程上進行上載,以便主線程可以關閉圖像選擇器並顯示覆蓋圖。

+0

同意,方法完成後更新視圖,因此首先關閉選取器,然後添加您的視圖,然後在後臺調用另一種方法。我通常只做[self performSelector:@selector(processImage :) withObject:picker.image afterDelay:0.05],然後視圖事情完成,圖像處理在另一個運行循環中進行。使用後臺線程應該類似,你只需要照顧autorelease池。 – 2013-02-17 14:47:58