2016-12-15 8 views
3

Ich verwende denselben Code auf einem iPhone 6 plus und einem iPad Pro und sie reagieren nicht auf die gleiche Weise. Eine Funktion wird aufgerufen, wenn die Geräteausrichtung ändern und dann bin ich das Drucken nur die Breite der Ansicht mit dem folgenden Code:Unterschiedliches Verhalten zwischen iPhone und iPad

override func viewDidLoad(){ 
    super.vewDidLoad() 
    NotificationCenter.default.addObserver(self, selector: #selector(MyClass.rotated), name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil) 
} 
func rotated(){ 
    print(self.view.bounds.width) 
} 

Auf dem iPhone ich die Breite nach der Drehung erhalten, aber auf dem iPad bekomme ich die Breite vor der Rotation. Danke für Ihre Hilfe!

+0

Geben Sie ein wenig mehr Kontext. Veröffentlichen Sie die gesamte Methode, die diese Druckzeile enthält. – rmaddy

+0

Sie sollten sich die Methode 'traitCollectionDidChange (_ :)' ansehen, die unter anderem aufgerufen wird, wenn ein Gerät gedreht wird. – rmaddy

Antwort

3

können Sie versuchen, die Breite in der View-Controller-Funktion zu erhalten:

func viewDidLayoutSubviews()

Lassen Sie mich wissen, ob das hilft!

+0

Ja, das funktioniert! Vielen Dank – AW5

Verwandte Themen