質問編集履歴

1 info.plistのスクリーンショットっ追加

amery

amery score 128

2019/07/07 13:37  投稿

Xamarin.iOSでiPadを横画面固定にしたがステータスバーが回転してしまう
下の図のように横画面で起動した後に縦に回転すると
[13:14 7月7日(日)]のステータスバーの部分がナビゲーションバーに反して回転してしまうのですが、固定にすることはできないでしょうか?
▼横画面で起動
![イメージ説明](d40aec04a9920a7d2fef3bf3f53b0c97.png)
▼縦に回転させる
![イメージ説明](7f5adea15c13b03c0e0e456c0899de03.png)
```c#
// AppDelegate.cs
       public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
       {
           Window = new UIWindow(UIScreen.MainScreen.Bounds);
           MyNavigationController navigationController = new MyNavigationController();
           Window.RootViewController = navigationController;
           Window.MakeKeyAndVisible();
           UIViewController nextViewController = new MyViewController();
           navigationController.PushViewController(nextViewController, true);
           return true;
       }
```
```c#
// MyNavigationController.cs
   class MyNavigationController : UINavigationController
   {
       public override UIInterfaceOrientation PreferredInterfaceOrientationForPresentation()
       {
           return UIInterfaceOrientation.LandscapeLeft;
       }
       public override bool ShouldAutorotate()
       {
           return false;
       }
       public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
       {
           return UIInterfaceOrientationMask.LandscapeLeft;
       }
   }
```
```c#
// MyViewController.cs
   class MyViewController : UIViewController
   {
       UIButton BlueButton { get; set; }
       public override void ViewDidLoad()
       {
           base.ViewDidLoad();
           View.BackgroundColor = UIColor.White;
           BlueButton = new UIButton()
           {
               Bounds = new CoreGraphics.CGRect(0, 0, 100, 100),
               BackgroundColor = UIColor.Blue,
           };
           View.AddSubview(BlueButton);
       }
       public override void ViewDidAppear(bool animated)
       {
           base.ViewDidAppear(animated);
           BlueButton.Center = View.Center;
       }
   }
```
▼info.plist  
iPadの場合は「全画面表示を必要とする」にチェックしないと横画面固定にならないのでチェックを入れています。  
![イメージ説明](63aec7432989c2c75efc3fb171f594c0.png)  
 
 
◆開発環境
▼実機デバイス
iPad 9.7インチ Wi-Fiモデル 32GB MRJN2J/A
▼Windows 10
Visual Studio Community 2017 Version 15.9.11
Xamarin 4.12.3.83
Xamarin.iOS and Xamarin.Mac SDK 12.4.0.64
▼Mac mini(Late 2014)
macOS Majave 10.14.4
Xcode 10.2.1
  • iOS

    6251 questions

    iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

  • Xamarin

    761 questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る