あるときに、現在私のアプリは、ポートレートモードでは、このように見えるアイコンを回転させる: スウィフトは、iPadが横長モードで
が、私のiPadが横長モードであるとき、私は私のアイコンは次のようになりたい:
今ではそれは風景モードで以下のようになります。
だから私の質問は:どのように私はアイコンを回転させることができますか?私はもっとアイコンが動かなければならない何かを必要としません
あるときに、現在私のアプリは、ポートレートモードでは、このように見えるアイコンを回転させる: スウィフトは、iPadが横長モードで
が、私のiPadが横長モードであるとき、私は私のアイコンは次のようになりたい:
今ではそれは風景モードで以下のようになります。
だから私の質問は:どのように私はアイコンを回転させることができますか?私はもっとアイコンが動かなければならない何かを必要としません
viewDidLoadメソッドにこのコード行を追加します。NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(rotate), name: UIDeviceOrientationDidChangeNotification, object: nil)
、これは関数です。
func rotate(){
if UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeLeft {
self.takephoto.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
self.recordButton.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
} else if UIDevice.currentDevice().orientation == UIDeviceOrientation.LandscapeRight {
self.takephoto.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI_2))
self.recordButton.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI_2))
} else if UIDevice.currentDevice().orientation == UIDeviceOrientation.Portrait {
self.takephoto.transform = CGAffineTransformMakeRotation(CGFloat(0))
self.recordButton.transform = CGAffineTransformMakeRotation(CGFloat(0))
} else if UIDevice.currentDevice().orientation == UIDeviceOrientation.PortraitUpsideDown {
self.takephoto.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))
self.recordButton.transform = CGAffineTransformMakeRotation(CGFloat(M_PI))
}
}
ただポートレートモードをサポートすることから始まります。 https://stackoverflow.com/a/12086463/4209778
その後、あなたは(+/-)90度でCGAffineTransformMakeRotationを使用して、アイコンを回転させることができ、あなたの方向に基づいて:あなたは、あなたのようなコントローラーでUIDeviceOrientationDidChangeNotificationのために観察することができます。使用して、ビューコントローラのオーバーライドviewWillTransitionToSize:withTransitionCoordinator:
と丸暗記あなたのイメージで
:imageView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
EG:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
let isPortrait = size.height > size.width
imageView.transform = CGAffineTransformMakeRotation(CGFloat(isPortrait ? 0 : M_PI_2))
}
私はそれを取得しません。あなたがストーリーボードでサイズクラスを使用している場合、これは問題ではありません。すべてのビューと画像が適切に回転します。 –
ええ、彼らは回転しますが、それはそのようには見えません – mafioso
私の投稿を編集しました。今のように見えます。 – mafioso