iOS系统控件的大小增加

时间:2017-04-12 18:56:07

标签: xamarin xamarin.forms mvvmcross

我正在开发一个简单的xamarin表单应用程序,其中一个视图与Mvvmcross框架结合使用。一切都进展顺利,但在某些时候,我注意到状态栏和所有系统控件(如警报,导航栏,后退按钮)的大小与其他应用程序相比(仅在iOS平台上)。我已经尝试过但没有成功恢复所有更改,但这个错误仍然存​​在。使用VS 2015模板创建的其他测试应用程序正常运行。在Status bar size example,这种差异清晰可见。

在代码中,我只有一个标准的Mvvmcross设置与MainPage.xaml视图,其中包含没有任何自定义效果或渲染器的ContentPage。

iOS Setup.cs

protected override IMvxIosViewPresenter CreatePresenter()
            {
                Forms.Init();

                var xamarinFormsApp = new App();

                return new MvxFormsIosPagePresenter(Window, xamarinFormsApp);
            }

iOS AppDelegate

 [Register("AppDelegate")]
    public partial class AppDelegate : MvxApplicationDelegate
    {
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {

            var window = new UIWindow(UIScreen.MainScreen.Bounds);

            var setup = new Setup(this, window);

            setup.Initialize();

            var startup = Mvx.Resolve<IMvxAppStart>();

            startup.Start();

            window.MakeKeyAndVisible();

            return true;
        }
    }

iOS Info.plist

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleDisplayName</key>
    <string>XamarinFormsApp</string>
    <key>CFBundleIdentifier</key>
    <string>com.test.xamarintest</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>CFBundleIconFiles</key>
    <array />
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>MinimumOSVersion</key>
    <string>9.0</string>
    <key>UIDeviceFamily</key>
    <array>
      <integer>1</integer>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
      <string>UIInterfaceOrientationPortrait</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationPortraitUpsideDown</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UIStatusBarHidden</key>
    <true/>      
  </dict>
</plist>

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。之所以发生这种情况,是因为我使用了闪屏静止图像而不是故事板方法。我不明白为什么iOS这样控制大小缩放,但解决方案是删除该图像并使用故事板方法启动屏幕。

P.S。感谢Gerald Versluis的回复。它引导我朝着正确的方向前进。