1.判斷當(dāng)前UIViewController是否在顯示
假如一個UIView對象當(dāng)前正在顯示蜜宪,那么它的window屬性肯定為非空值终议。雖然官方文檔未說明UIView未顯示時(shí)window屬性的取值汇竭,但是經(jīng)過簡單的測試,大部分情況下UIView未顯示時(shí)穴张,window的值為空细燎,因此依據(jù)此判斷當(dāng)前UIViewController是否正在顯示。但是訪問UIViewController的view屬性時(shí)皂甘,可能會引起view加載(假如此時(shí)還未加載)玻驻,這是不必要的,而且還可能引起無法預(yù)期的問題偿枕。因此在訪問view屬性之前璧瞬,最好先檢查isViewLoaded屬性來避免上述問題。
封裝了一個類方法 為了調(diào)用更方便
+(BOOL)isCurrentViewControllerVisible:(UIViewController *)viewController
{
return (viewController.isViewLoaded && viewController.view.window);
}
2.判斷某個view是否在顯示(在這不考慮view.hide=true的情況)
view.superview != nil ?(說明該view已經(jīng)add到了父視圖上了)
或者直接判斷 view.window