2017-09-05 3 views
0

Meine App hat eine Schaltfläche, die meine Ansicht um 90 Grad dreht und ändert ihren Rahmen entsprechend, so dass es den Bildschirm in Landschaft füllt.Bildgröße der Ansicht ändert sich nicht in iOS 11

Der Code ist wie folgt:

CGAffineTransform transform = CGAffineTransformRotate(self.tabsView.transform, M_PI_2); 

self.tabsView.transform = transform; 


CGRect newFrame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height); 

self.tabsView.frame = newFrame; 

Es wirkt wie ein Zauber auf iOS 10 und unteren: Lanscape iOS 10

Aber es auf Xcode 9 Beta 6 in der iOS-11-Simulator läuft Ich bekomme dieses Ergebnis: Landscape iOS 11

Ist das ein Bug oder irgendetwas cha nge in dieser Version weiß ich nicht über? Ich verwende Auto-Layout.

+0

glaubst du nicht nach der Transformation, Höhe der Ansicht wird Breite und Breite werden Höhe? – Suryakant

+0

@Suryakant Ich dachte das auch zuerst, aber das verursacht nur falsche Ergebnisse auf iOS 10 und immer noch keinen Einfluss auf iOS 11. Der Code selbst ist korrekt, es scheint nur wie es nicht auf iOS 11 ausgeführt wird und ich nicht weiß warum. – Kian

Antwort

0

Ich habe gerade die Lösung gefunden. Es war notwendig, diese Codezeile hinzuzufügen:

self.tabsView.translatesAutoresizingMaskIntoConstraints = YES; 

es die Ansichten übersetzt in Auto-Layout Einschränkungen der automatischen Maske. Damit habe ich das gleiche Ergebnis auf beiden iOS-Versionen.

Verwandte Themen