Xamarin iOS系统控件的大小有所增加

Xamarin iOS系统控件的大小有所增加,xamarin,xamarin.forms,mvvmcross,Xamarin,Xamarin.forms,Mvvmcross,我正在结合Mvvmcross框架开发一个简单的xamarin表单应用程序,其中包含一个视图。一切进展顺利,但在某个时间点,我注意到状态栏和所有系统控件(如警报、导航栏、后退按钮)的大小都比其他应用程序(仅在iOS平台上)大。我试图恢复所有更改,但没有成功,但是这个bug仍然存在。使用VS 2015模板创建的其他测试应用程序运行良好。在这一点上,差异是显而易见的 在代码中,我使用MainPage.xaml视图创建了一个标准的Mvvmcross设置,其中包含一个没有任何自定义效果或渲染器的Conte

我正在结合Mvvmcross框架开发一个简单的xamarin表单应用程序,其中包含一个视图。一切进展顺利,但在某个时间点,我注意到状态栏和所有系统控件(如警报、导航栏、后退按钮)的大小都比其他应用程序(仅在iOS平台上)大。我试图恢复所有更改,但没有成功,但是这个bug仍然存在。使用VS 2015模板创建的其他测试应用程序运行良好。在这一点上,差异是显而易见的

在代码中,我使用MainPage.xaml视图创建了一个标准的Mvvmcross设置,其中包含一个没有任何自定义效果或渲染器的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;
        }
    }
[注册(“AppDelegate”)]
公共部分类AppDelegate:MvxApplicationDelegate
{
公共覆盖bool FinishedLaunching(UIApplication应用程序、NSDictionary选项)
{
var窗口=新的UIWindow(UIScreen.MainScreen.Bounds);
var设置=新设置(此窗口);
setup.Initialize();
var startup=Mvx.Resolve();
startup.Start();
window.MakeKeyAndVisible();
返回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>

CbundleDisplayName
XamarinFormsApp
CbundleIdentifier
com.test.xamarinest
循环流化床锅炉
1
CFBundleIconFiles
CbundleShortVersionString
1
LSREQUIRESPHONEOS
最小渗透压
9
UIDeviceFamily
1.
UI支持接口方向
UIInterfaceOrientationPortrait
UI支持界面方向~ipad
UIInterfaceOrientationPortrait
UIInterfaceOrientation上下方向图
UIInterface方向和左视图
UIInterfaceOrientationAndscapeRight
UIStatusBarHidden

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


另外,感谢杰拉尔德·弗斯路易斯的回复。它指引了我正确的方向。

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


另外,感谢杰拉尔德·弗斯路易斯的回复。它引导我朝着正确的方向前进。

我见过这种情况发生过几次,但不确定是什么原因造成的。从应用程序切换器终止应用程序后,重置模拟器(或硬重启我正在测试的设备)似乎可以修复它。我认为这是一个正在被触发的可访问性功能。Keith Rome,这是一个有趣的考虑,但不幸的是,它没有解释为什么其他应用程序可以正常工作,无论它们在哪里启动:在设备上还是在模拟器上。然而,在模拟器中启动我的应用程序,重新启动设备或重建应用程序,都不会产生任何结果;它不是在兼容模式下运行吗?这是通过添加正确的启动屏幕大小来确定的,例如,请看,虽然现在似乎不太可能出现问题,因为所有模板都应该更新。我见过这种情况发生过几次,但不确定是什么原因造成的。从应用程序切换器终止应用程序后,重置模拟器(或硬重启我正在测试的设备)似乎可以修复它。我认为这是一个正在被触发的可访问性功能。Keith Rome,这是一个有趣的考虑,但不幸的是,它没有解释为什么其他应用程序可以正常工作,无论它们在哪里启动:在设备上还是在模拟器上。然而,在模拟器中启动我的应用程序,重新启动设备或重建应用程序,都不会产生任何结果;它不是在兼容模式下运行吗?这是通过添加正确的启动屏幕大小来确定的,例如,请参见,尽管这似乎不太可能是当今的问题,因为所有模板都应该更新