Hallo, ich frage mich, ob es eine Möglichkeit gibt, die Breite programmgesteuert zu ermitteln.
Ich bin auf der Suche nach etwas Allgemeinem genug, um iPhone 3Gs, iPhone 4, iPad unterzubringen. Außerdem sollte sich die Breite ändern, je nachdem, ob es sich bei dem Gerät um ein Hoch- oder Querformat handelt (für ein iPad).
Weiß jemand wie man das macht ?? Ich habe eine Weile gesucht ... danke!
iphone
objective-c
cocoa-touch
ipad
foreyez
quelle
quelle
Antworten:
Schauen Sie sich UIScreen an .
z.B.
Sehen Sie sich die applicationFrame-Eigenschaft an, wenn die Statusleiste nicht enthalten sein soll (die Breite wird nicht beeinflusst).
UPDATE: Es stellt sich heraus, dass UIScreen (-bounds oder -applicationFrame) die aktuelle Ausrichtung der Benutzeroberfläche nicht berücksichtigt. Ein korrekterer Ansatz wäre, Ihr UIView nach seinen Grenzen zu fragen - vorausgesetzt, dieses UIView wurde von seinem View-Controller automatisch gedreht.
Wenn die Ansicht vom View Controller nicht automatisch gedreht wird, müssen Sie die Ausrichtung der Benutzeroberfläche überprüfen, um festzustellen, welcher Teil der Ansichtsgrenzen die 'Breite' und die 'Höhe' darstellt. Beachten Sie, dass die Rahmeneigenschaft das Rechteck der Ansicht im Koordinatenraum des UIWindow anzeigt, wobei (standardmäßig) die Ausrichtung der Benutzeroberfläche nicht berücksichtigt wird.
quelle
quelle
Dies kann in 3 Codezeilen erfolgen :
quelle
Ab iOS 9.0 gibt es keine Möglichkeit, die Ausrichtung zuverlässig zu erhalten. Dies ist der Code, den ich für eine App verwendet habe, die ich nur für den Hochformatmodus entwerfe. Wenn die App also im Querformat geöffnet wird, ist sie immer noch korrekt:
quelle
Verwenden Sie diesen Code, es wird helfen
quelle
verwenden:
quelle
Hier ist ein schneller Weg, um Bildschirmgrößen zu erhalten. Dies berücksichtigt auch die aktuelle Ausrichtung der Benutzeroberfläche:
Diese sind standardmäßig enthalten in:
https://github.com/goktugyil/EZSwiftExtensions
quelle