2014-10-17 21 views
5

Używam wielkości klas w konstruktorze interfejsów, definiując nieco różne projekty dla różnych rozmiarów.Kod X 6 - iOS 8: programowo sprawdź, czy widok jest zainstalowany

Jeden z moich widoków nie jest zainstalowany dla określonego rozmiaru. Działa to zgodnie z oczekiwaniami, ale teraz chciałbym programowo móc stwierdzić, czy ten widok jest zainstalowany, czy nie. Niezależnie od tego, czy jest zainstalowany, czy nie, wygląda na to, że widok nigdy nie jest zerowy i nie widzę żadnej sprawdzonej flagi.

Jaki jest prawidłowy sposób to zrobić?

Odpowiedz

4

Nie jest to świetne rozwiązanie, ale nie znalazłem jeszcze lepszy.

Stan docs że „Obiekt wykonawcze dla niezamontowanego widzenia jest nadal tworzona Jednak widok i podobnego ograniczenia nie są dodawane do hierarchii widoków, a widok ma właściwość superview zero ".

Tak więc test dla prawidłowego podglądu działa jako rozwiązanie, ale stwierdziłem, że musi on nadejść dość późno - w viewDidAppear. Wywiady wciąż nie występują, na przykład w viewWillAppear.

-1

od Apple Docs: Installing and Uninstalling Views for a Size Class

Obiekt wykonawcze dla odinstalowane widzenia jest jeszcze utworzony. Jednak widok i związane z nim ograniczenia nie są dodawane do hierarchii widoku, a widok ma właściwość superview o wartości zero. Różni się to od bycia ukrytym. Ukryty widok jest w hierarchii widoku wraz z powiązanymi powiązaniami.

Można sprawdzić, oceniając PossiblyUninstalledView.superView != nil. Jeśli jest to prawda, to klasa jest poprawnie zainstalowana.

0

Można wykonać rozszerzenie do UIView i sprawdzić, czy widok ma widok superwizyjny. Jeśli jest zainstalowany, zwróci true, jeśli nie, zwróci false.

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