BarTintColor 不适用于 Xamarin 中 iOS 13 中的 PrefersLargeTitles

Posted

技术标签:

【中文标题】BarTintColor 不适用于 Xamarin 中 iOS 13 中的 PrefersLargeTitles【英文标题】:BarTintColor does not work with PrefersLargeTitles in iOS 13 in Xamarin 【发布时间】:2019-08-22 19:22:02 【问题描述】:

当我尝试为 ios 13 准备我们的应用时,我遇到了无法修复的渲染问题。

我们的 ViewDidLoad 中有这样的代码:

this.NavigationController.SetNavigationBarHidden(false, false);
this.NavigationController.NavigationBar.BarTintColor = UIColor.FromRGB(3, 117, 178);
this.NavigationController.NavigationBar.TintColor = UIColor.White;
this.NavigationController.NavigationBar.Translucent = false;
this.NavigationController.NavigationBar.TitleTextAttributes = new UIStringAttributes

ForegroundColor = UIColor.White
;
View.BackgroundColor = UIColor.White;

this.NavigationController.NavigationBar.PrefersLargeTitles = true;
this.NavigationController.NavigationBar.LargeTitleTextAttributes = new UIStringAttributes

ForegroundColor = UIColor.White
;

在 iOS 12 中,它看起来像这样

刚刚为 13 编译,现在看起来像

但如果我滚动,它看起来确实正确(搜索除外)

我们之前从开发博客https://devblogs.microsoft.com/xamarin/go-large-ios-11/ 获得了很多此类信息,我在那里尝试了几次迭代。我什至尝试将其中的一部分放在我们的 AppDelegate 中。

我可以更改文本(它实际上在这里工作,这就是你什么都看不到的原因)。它在没有设置 PrefersLargeTitles 的页面上工作正常。

【问题讨论】:

嗨,现在 xamarin 可能与 iOS13 不完全兼容。 IOS 13是beta版,稳定版的时候可以试试,如果到时候还有问题,可以认为是issue。 我完全明白了——但两个测试版都接近尾声了。除了作为测试版之外,还希望解决问题。我不是说这是 beta 版的问题,我是说我在版本之间遇到了这个问题,不知道发生了什么。 好吧,虽然两个节拍都接近尾声了,但是发布版本后一切都准备好了。不仅是IOS版本,Xamarin.Forms版本也准备好适配了。跨度> 此处不使用 Xamarin 表单。这在本机 iOS 应用程序中也可以正常工作。向项目提交反馈。我们正在对我们的东西进行更新,以便在发布的同时准备好。 Okey,如果得到解决方案将在这里分享。 【参考方案1】:

这是 12.99.3.5 之前 Xamarin 中的一个错误。

在 12.99.3.5 中,新的 ScrollEdgeAppearance 属性可用,但也不起作用。

这在 12.99.4.1 及更高版本中已修复。

可以通过https://github.com/xamarin/xamarin-macios/issues/6834跟踪进度

【讨论】:

以上是关于BarTintColor 不适用于 Xamarin 中 iOS 13 中的 PrefersLargeTitles的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms FlyoutPage 不适用于 Prism

Xamarin.Forms WebView 不适用于 WebRTC

Xamarin.Essentials Screenshot.CaptureAsync() 不适用于视频视图

语音识别不适用于 Android 5.1.1 Xamarin

GCM 推送通知不适用于 xamarin android

如何在 xamarin 中为 android 添加工具栏,因为 ToolbarItem 不适用于 .droid?