2015-10-01 45 views
0

我想查看哪個子視圖現在可以在屏幕上看到或被其他視圖覆蓋,我無法處理以下情況。如何檢查目標C中屏幕上當前顯示哪個子視圖?

if (viewController.isViewLoaded && viewController.view.window) { 
    // viewController is visible 
} 

任何人都可以給我一個子視圖的例子嗎?

如果viewController是我添加子視圖的主要控制器,我喜歡檢查這個條件的一個子控件。

回答

0

您可以得到由follwoing代碼的最頂部的視圖片斷

topMostSubView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject]; 

通常這會給你的俯視圖,但是沒有保證,這是對用戶可見。它可能不在屏幕上,具有0.0的alpha,或者可能具有0x0的大小。

也可能是keyWindow沒有子視圖,所以你應該先測試一下。

如果你想在最上面的視圖中添加另一個子視圖,你可以直接使用addSubview將它直接添加到keyWindow中:它會立即成爲最頂層的視圖。

相關問題