2016-07-28 23 views
0

Wie kann ich die Tasten nur drehen, wenn sich mein Gerät im Hoch- oder Querformat befindet? Ich weiß etwas in der Art:Wie wird die Taste gedreht, wenn sich die Geräteausrichtung in swift ändert?

Aber wo muss ich es in meinem Code aufrufen?
Ich möchte mein Gerät nicht im Querformat einstellen. Ich möchte nur die Symbole drehen, wenn es im Querformat sein soll.
Vielen Dank im Voraus!

+0

Überprüfen Sie diesen Link http://stackoverflow.com/questions/25666269/ios8-swift-how-to-detect-orientation-change –

Antwort

0

sollten Sie außer Kraft setzen func

viewWillTransitionToSize(_ size: CGSize, withTransitionCoordinator coordinator:UIViewControllerTransitionCoordinator) 

und rufen dort verwandeln

nicht CGAffineTransformIdentity zuweisen vergessen, wenn sie gedreht zurück

Mehr über Rotation: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIContentContainer_Ref/index.html#//apple_ref/occ/intfm/UIContentContainer/viewWillTransitionToSize:withTransitionCoordinator:

1

Der beste Weg, dies zu tun ist viewDidLoad fügen Sie diese Codezeile unten hinzu:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(rotate), name: UIDeviceOrientationDidChangeNotification, object: nil) 

und dann in Funktion drehen bei Geräten Orientierung hat einige Codes wie folgt:

func rotate(){ 
    if UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation) { 
    //your code here in landscape mode 
    } 
if UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation){ 
    //your code in portrait mode 
    } 
} 

diese Lösung ist einfach und einfach zu tun.

0

Ich denke, Sie wissen, wie Sie die Tasten bereits "drehen", so werde ich Ihnen nur sagen, wie Sie wissen, dass das Gerät gedreht hat.

In einem View-Controller, außer Kraft setzen willRotateToInterfaceOrientation:

override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) { 

} 

Bei dem Verfahren Körper kann man den Wert von toInterfaceOrientation überprüfen, um zu wissen, welche Orientierung das Gerät dreht. Zum Beispiel:

switch toInterfaceOrientation { 
    case Portrait: 
     // some code here... 
    default: 
     break 
}