2013-01-23 16 views
6

我正在使用MBProgressHUD視圖來顯示加載狀態,當我從互聯網上下載的東西。下載完成後,我調用hide方法隱藏視圖。我想使用定時器來判斷下載是否完成,方法是檢查視圖的隱藏方法,即isHidden方法。但是當我將視圖的隱藏設置爲YES,則檢查isHidden方法,它返回NO。我不知道爲什麼這個視圖是這樣的?爲什麼將MBProgressHUD的hide設置爲YES,但isHidden方法是NO?

一些片段如下:

MBProgressHUD *HUD; // instance variable 

在下載完成方法:

[HUD hide:YES]; 
NSLog(@"HUD isHidden: %@",[HUD isHidden] ? @"YES" : @"NO"); 

當該方法被調用時,輸出爲否。

回答

5

根據MBProgressHUD的實現,它們不使用UIView的隱藏屬性隱藏它。他們只是將MBProgressHUD的alpha設置爲0,以便它不可見。

+0

感謝您的回覆,我檢查了hide:方法實現。正如你所說的,他們將alpha值設置爲0,並沒有使用UIView的隱藏屬性。我想知道他們是否應該更新隱藏的財產? – chancyWu

4

我發現:

MBProgressHUDisHidden法默認設置NO這樣你就可以得到所有時間(當您檢查NO。你沒有檢查超級視圖。

用於檢查MBProgressHUD狀態隱藏/顯示

設置[HUD setHidden:YES];[HUD hide:YES];然後它將正常工作。

NSLog(@"HUD isHidden: %@",[HUD isHidden] ? @"YES" : @"NO"); 
//Output in consol YES 
+0

是的,你是對的。我檢查了隱藏實現,它將alpha值更改爲0以隱藏視圖並且不更新隱藏屬性。並以您的方式,我可以檢查是隱藏的價值。感謝您的答案。 – chancyWu

+0

但我認爲Rahul的答案對我更好。他向我展示了隱藏實現。我會投票給你 – chancyWu

+0

歡迎你:) – chancyWu

相關問題