2017-10-07 40 views
6

Wygląda na to, że wystąpi błąd "Safe area layout guide before ios 9"., jeśli wyzwolę Use Safe Area Layout Guides w najmniej XCode, czy oznacza to, że obsługa obu urządzeń nie jest możliwa? Jakakolwiek rada? Dzięki.Czy jest możliwe obsługiwanie iPhone'a X i iOS 8 w tym samym projekcie?

+0

We wszystkich testach ja zrobiłem odpowiedź brzmi nie walczyłem z aż postanowiłem go sprawdzić. ilu użytkowników nadal używało systemu iOS 8 do mojej aplikacji i nie było żadnego. – MwcsMac

Odpowiedz

3

Jest całkowicie możliwe, aby wspierać iPhone X z minimalną cel iOS 8. (W rzeczywistości, to co mamy obecnie w aplikacji Khan Academy.)

Co możemy zrobić, to zastosować safeAreaInsets w naszym Swift Kod użyciu funkcji #available, tak:

public override func safeAreaInsetsDidChange() { 
    if #available(iOS 11.0, *) { 
     super.safeAreaInsetsDidChange() 
     self.contentCatalogHeaderView?.safeAreaInsetsTopOverride = safeAreaInsets.top 
     self.collectionViewLayout.safeAreaInsetsTop = safeAreaInsets.top 
    } 
} 

z twojego pytania, to brzmi jakbyś zastanawiając się, czy skorzystać z wyboru w serii ujęć, aby umożliwić bezpieczne wypustki powierzchnia. Nie jestem pewien, czy Storyboard obsługuje system iOS 8, jeśli włączone są bezpieczne wstawki obszaru (podejrzewam, że nie jest to możliwe). Zawsze jednak można zapisać odniesienie do ograniczenia układu i zaktualizować jego stałą w kodzie za pomocą powyższej funkcji #available.

(w Objective-C, kod wygląda prawie identyczne, tylko sformatować go tak:

- (void)viewSafeAreaInsetsDidChange { 
    if (@available(iOS 11.0, *)) { 
     [super viewSafeAreaInsetsDidChange]; 
     [self.view setNeedsLayout]; 
    } 
}