Xamarin Forms - 从 2017 年到 2019 年更新 Visual Studio 后 iOS 上的奇怪行为
Posted
技术标签:
【中文标题】Xamarin Forms - 从 2017 年到 2019 年更新 Visual Studio 后 iOS 上的奇怪行为【英文标题】:Xamarin Forms - strange behaviour on iOS after updating Visual Studio from 2017 to 2019 【发布时间】:2020-02-05 11:06:41 【问题描述】:在将 Visual Studio 从 2017 年更新到 2019 年、将 Visual Studio for Mac 更新到 2017 年 2019 年以及将“Xamarin.ios 和 Xamarin.Mac SDK”从 12.4.0.64 更新到 13.10.0.17 之后,iOS 应用程序上出现了一些奇怪的东西。当用户通过以下方式打开新页面时:
await Application.Current.MainPage.Navigation.PushModalAsync(page, animated);
然后额外的填充出现在顶部(大约 50 像素),这是透明的 - 用户可以在下面看到上一页的一部分(带有圆角)。此外,页面有左右边距(约 3 px),页面有圆角。 Visual Studio 2017 中的相同代码以 100% 的屏幕覆盖率显示页面。 2019 年约为 90%。它看起来像一个弹出窗口。 2019版如何获得100%的覆盖率?
【问题讨论】:
嗨,Apple 在 iOS 13 中改变了这一点。 【参考方案1】:Apple 已根据您所描述的内容更改了 iOS 13 上模态页面的默认呈现方式。
但是,默认情况下,此行为不会出现在 Xamarin.Forms 中。您可能有一些自定义渲染器或插件导致此问题。
【讨论】:
【参考方案2】:Apple 对 iOS 13 进行了更改。如果需要和之前导航一样的效果。
这里有一个简单的解决方法。使用PushAsync
替换PushModalAsync
如下:
await Application.Current.MainPage.Navigation.PushAsync(page, animated);
如果不需要 NavigationBar
或 BackButton
与 PushModalAsync
相同,您可以将它们隐藏如下:
NavigationPage.SetHasBackButton(itemDetailPage, false); //Hide BackButton
NavigationPage.SetHasNavigationBar(itemDetailPage,false);//Hide NavigationBar
【讨论】:
以上是关于Xamarin Forms - 从 2017 年到 2019 年更新 Visual Studio 后 iOS 上的奇怪行为的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms Visual Studio 2017 项目未部署
iOS 上的 Xamarin.Forms Master/Detail 边缘滑动
在 Xamarin.Forms 中使用 MVVM 进行页面导航
Xamarin.Forms NavigationPage PushAsync 不滚动