UITabBarController BarTintColor 在 iOS15 中不工作
UITabBarController BarTintColor not working in iOS15
在iOS15中,我遇到了一个问题,底栏的颜色显示不正确,变成了transparent/white。相同的代码在 iOS14 & iOS13.
中运行良好
我有一个用于 iOS 的标签栏渲染器 class,在 ViewWillAppear() 中,我使用代码 TabBar.BarTintColor = UIColor.Blue
来更改标签栏颜色,它仅适用于 iOS 低于 iOS15 但不在 iOS15.
基于此 issue,我假设我需要将代码从 UINavigationBar 转换为 UITabBar。但是,我在 UITabBar class 中没有看到任何对“scrollEdgeAppearance”的引用。我相信这对于解决问题很重要。如果有人能给我一些建议,我将不胜感激。非常感谢。
更改选项卡栏颜色的代码适用于 iOS14 & iOS13
TabBar.BarTintColor = UIColor.Blue;
UINavigationBar
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = <your tint color>
navigationBar.standardAppearance = appearance;
navigationBar.scrollEdgeAppearance = navigationBar.standardAppearance
我自己的UITabBar代码
var appearance = new UITabBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = UIColor.Blue;
this.TabBarController.TabBar.StandardAppearance = appearance;
嗯,我想你正在寻找当前 ViewController 的导航项:
试试
var appearance = new UINavigationBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = *Your color*;
tabBar.NavigationItem.StandardAppearance = appearance;
tabBar.NavigationItem.ScrollEdgeAppearance = tabBar.NavigationItem.StandardAppearance;
其中 tabBar 是 UITabBarController 对象
祝你好运
您需要使用继承自 UIBarAppearance 的类。
我在 iOS 15 上写了一篇谈论 UINavigationBar 的文章,但我也谈论了其他组件,如 UITabBar。您可以在这里查看:https://medium.com/@eduardosanti/uinavigationbar-is-black-on-ios-15-44e7852ea6f7
你有没有检查过这个 link:https://github.com/xamarin/xamarin-macios/issues/12778 ?
由于目前 iOS 15 在 visual studio 中没有更新,因此我们需要下载 pkg 文件并手动安装 Xamarin.iOS
以测试 iOS 15.
我下载并安装了它,使用下面的代码,一切正常。
if(UIDevice.CurrentDevice.CheckSystemVersion(15,0))
{
var appearance = new UITabBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = UIColor.Blue;
tab.TabBar.StandardAppearance = appearance;
tab.TabBar.ScrollEdgeAppearance = tab.TabBar.StandardAppearance;
}
参考
.
Visual Studio for Mac 现在包括 Xamarin.iOS 15.0.0.6 更新。
我将 Mac 的 Visual Studio 更新为版本 8.10.9(构建 3),将 Xamarin.iOS 更新为 15.0.0.6
我使用以下代码解决了 UITabBar 条形颜色问题:
var appearance = new UITabBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = UIColor.Blue; // color you want
TabBar.StandardAppearance = appearance;
TabBar.ScrollEdgeAppearance = TabBar.StandardAppearance;
*** 截至 9 月 30 日,如果您将 Visual Studio 用于 Windows,您可能仍未在 UITabBar class 中看到对“scrollEdgeAppearance”的引用。您可以忽略它,因为您仍然可以无错误地构建项目。
刚刚解决了这个问题,但在 Xamarin.Forms 中:标签栏在 iOS 15 中有 white/transparent 颜色。
- 更新 VS Mac(8.10.10 build 8)。
- 安装最新的 Xamarin.iOS (15.0.0.6)。
- 使用UITabBar:在App_Delegate.cs的FinishedLaunching某处添加如下代码:
UITabBar.Appearance.BackgroundColor = Color.FromHex("333333").ToUIColor();
在iOS15中,我遇到了一个问题,底栏的颜色显示不正确,变成了transparent/white。相同的代码在 iOS14 & iOS13.
中运行良好我有一个用于 iOS 的标签栏渲染器 class,在 ViewWillAppear() 中,我使用代码 TabBar.BarTintColor = UIColor.Blue
来更改标签栏颜色,它仅适用于 iOS 低于 iOS15 但不在 iOS15.
基于此 issue,我假设我需要将代码从 UINavigationBar 转换为 UITabBar。但是,我在 UITabBar class 中没有看到任何对“scrollEdgeAppearance”的引用。我相信这对于解决问题很重要。如果有人能给我一些建议,我将不胜感激。非常感谢。
更改选项卡栏颜色的代码适用于 iOS14 & iOS13
TabBar.BarTintColor = UIColor.Blue;
UINavigationBar
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = <your tint color>
navigationBar.standardAppearance = appearance;
navigationBar.scrollEdgeAppearance = navigationBar.standardAppearance
我自己的UITabBar代码
var appearance = new UITabBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = UIColor.Blue;
this.TabBarController.TabBar.StandardAppearance = appearance;
嗯,我想你正在寻找当前 ViewController 的导航项:
试试
var appearance = new UINavigationBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = *Your color*;
tabBar.NavigationItem.StandardAppearance = appearance;
tabBar.NavigationItem.ScrollEdgeAppearance = tabBar.NavigationItem.StandardAppearance;
其中 tabBar 是 UITabBarController 对象
祝你好运
您需要使用继承自 UIBarAppearance 的类。
我在 iOS 15 上写了一篇谈论 UINavigationBar 的文章,但我也谈论了其他组件,如 UITabBar。您可以在这里查看:https://medium.com/@eduardosanti/uinavigationbar-is-black-on-ios-15-44e7852ea6f7
你有没有检查过这个 link:https://github.com/xamarin/xamarin-macios/issues/12778 ?
由于目前 iOS 15 在 visual studio 中没有更新,因此我们需要下载 pkg 文件并手动安装 Xamarin.iOS
以测试 iOS 15.
我下载并安装了它,使用下面的代码,一切正常。
if(UIDevice.CurrentDevice.CheckSystemVersion(15,0))
{
var appearance = new UITabBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = UIColor.Blue;
tab.TabBar.StandardAppearance = appearance;
tab.TabBar.ScrollEdgeAppearance = tab.TabBar.StandardAppearance;
}
参考
.
Visual Studio for Mac 现在包括 Xamarin.iOS 15.0.0.6 更新。
我将 Mac 的 Visual Studio 更新为版本 8.10.9(构建 3),将 Xamarin.iOS 更新为 15.0.0.6
我使用以下代码解决了 UITabBar 条形颜色问题:
var appearance = new UITabBarAppearance();
appearance.ConfigureWithOpaqueBackground();
appearance.BackgroundColor = UIColor.Blue; // color you want
TabBar.StandardAppearance = appearance;
TabBar.ScrollEdgeAppearance = TabBar.StandardAppearance;
*** 截至 9 月 30 日,如果您将 Visual Studio 用于 Windows,您可能仍未在 UITabBar class 中看到对“scrollEdgeAppearance”的引用。您可以忽略它,因为您仍然可以无错误地构建项目。
刚刚解决了这个问题,但在 Xamarin.Forms 中:标签栏在 iOS 15 中有 white/transparent 颜色。
- 更新 VS Mac(8.10.10 build 8)。
- 安装最新的 Xamarin.iOS (15.0.0.6)。
- 使用UITabBar:在App_Delegate.cs的FinishedLaunching某处添加如下代码:
UITabBar.Appearance.BackgroundColor = Color.FromHex("333333").ToUIColor();