2014-10-17 51 views
5

我在界面構建器中使用了類大小,爲不同大小定義略有不同的設計。XCode 6 - iOS 8:以編程方式檢查視圖是否安裝

我的觀點之一是沒有安裝特定的大小。這符合預期,但現在我想以編程方式能夠判斷該視圖是否已安裝。無論是否安裝,它看起來像視圖從來沒有零,我看不到任何isInstalled標誌來檢查。

這樣做的正確方法是什麼?

回答

4

這並不是一個很好的解決方案,但我沒有找到一個更好的尚未:

docs狀態,「對於卸載的視圖運行時的對象仍然是創建然而,視圖和任何相關約束不會添加到視圖層次結構中,並且視圖具有nil的超級視圖屬性「。

因此,對有效的超級視圖進行測試是一種解決方案,但我發現它必須很晚 - 在viewDidAppear。例如,超級視圖在viewWillAppear中仍然爲零。

-1

從蘋果文檔:Installing and Uninstalling Views for a Size Class

用於卸載視圖運行時對象是否仍然創建。但是,視圖和任何相關約束不會添加到視圖層次結構中,並且視圖具有nil的超級視圖屬性。這與隱藏不同。一個隱藏的視圖和任何相關的約束一樣在視圖層次中。

您可以通過評估PossiblyUninstalledView.superView != nil進行檢查。如果確實如此,那麼該課程已正確安裝。

0

您可以對UIView進行擴展,並檢查視圖是否具有超級視圖。如果它已安裝,它將返回true,如果不是,則它將返回false。

extension UIView { 
    func isInstalled() -> Bool{ 
     return (self.superview != nil) ? true : false 
    } 
} 
相關問題