0

モバイルの向きが変更されたときに横向きに1つのボタンを非表示にする必要があるカスタムキーボードを1つ作成しています。これを行う方法を提案してください。以下のコードを使用してこのタスクを実行しています。横向きでもボタンが表示されます横向きではボタンを非表示にし、縦向きモードでは表示したい

override func updateViewConstraints() {
    super.updateViewConstraints()

   //  Add custom view sizing constraints here

    var currentDevice: UIDevice = UIDevice.currentDevice()
    var orientation: UIDeviceOrientation = currentDevice.orientation

    if orientation.isLandscape {

     button.hidden = true
     }

    if orientation.isPortrait {
        button.hidden = false
     }
}
4

1 に答える 1

1

あなたのviewDidLoad入れ物で

NSNotificationCenter.defaultCenter().addObserver(self, selector: "orientationChanged", name: UIDeviceOrientationDidChangeNotification, object: nil)

次に、このメソッドを追加します

func orientationChanged()
{
    if(UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation))
    {            
        button.hidden = true
    }

    if(UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation))
    {
        button.hidden = false
    }

}

ノート:

UIDevice.currentDevice().orientation正しい方向を示していない可能性があります。代わりにステータスバーの向きを使用できますUIApplication.sharedApplication().statusBarOrientation

アップルのドキュメントから:

UIDevice.currentDevice().orientation

プロパティの値は、デバイスの現在の向きを示す定数です。この値はデバイスの物理的な向きを表し、アプリケーションのユーザー インターフェイスの現在の向きとは異なる場合があります。可能な値の説明については、「UIDeviceOrientation」を参照してください。

于 2015-01-07T10:29:40.980 に答える