2011-02-28 61 views
1

我有一臺服務器提供了一個JSON,其中包含某些參數和圖像的名稱。然後我得到提供的名稱的圖像。所有這些都在一個名爲loadingOfImageAndInformation的函數中完成。我用的是MBProgressHUD如下:MBProgressHUD從服務器加載圖像時出現問題

[HUD showWhileExecuting:@selector(loadingOfImageAndInformation) 
        onTarget:self withObject:nil animated:YES]; 

原本應該顯示進度啄時,這種方法目前正在運行。現在,在該方法中,我使用ASIHTTPRequest來檢索我需要的所有數據。這意味着有時它會從該方法跳轉到請求方法(檢索圖像並將其分配給requestLoadDone上的UIImageView)。

現在,問題是MBProgressHUD thingy只顯示直到顯示參數(圖像描述我放在標籤上,我從JSON獲得的描述),直到參數AND圖像顯示。所以基本上,圖像在imageView上之前,加載程序就消失了。

這是有問題的代碼:

- (void) loadingHudAlert { 

NSString *loadingMessage = NSLocalizedString(@"Please Wait", 
@"Message displayed when the loading spinner is on"); 
HUD = [[MBProgressHUD alloc] initWithView:self.view]; 
HUD.minShowTime = 1.0; 
[self.view addSubview:HUD]; 
HUD.delegate = self; 
HUD.labelText = loadingMessage; 
[HUD showWhileExecuting:@selector(loadingOfImageAndInformation) 
onTarget:self withObject:nil animated:YES]; 
} 

的ASIHTTPRequest確實上的異步模式中的所有請求。沒有隊列。

謝謝您的反饋!

回答

1

我解決了它使用布爾,如果方法requestLoadDone完成布爾變成NO,而布爾值爲YES時,loadOfImageAndInformation將運行(這意味着將運行,直到圖像被正確檢索。)我還沒有張貼這個答案,因爲也許有人有更好的解決方案。

0

所以你說HUD在圖像顯示在你的圖像視圖之前就消失了,不是嗎?也許這更多是由於可可處理MBProgressHUD問題的原因。 你如何分配圖像?你有沒有嘗試過?

[yourimageview setNeedsDisplay]; 

我想要說的是,如果這是可可如何管理展示的東西imageviews,也許你可以嘗試「強制」重裝或顯示被之前完成。

+0

好吧,這是一個好主意,但不幸的是不能應用,因爲我已經在內存短缺和SetNeedsDisplay recache圖像,我不能承受。我使用布爾值來解決它,如果requestLoadDone方法完成,布爾變成NO,而當布爾值爲YES時,loadOfImageAndInformation將運行(這意味着將運行直到圖像被正確檢索。)我沒有發佈這個作爲因爲也許有人有更好的解決方案。 – Joze 2011-02-28 12:52:51