我正在Xamarin中编写一个ios应用程序,并希望实现类似于Facebook for ios的主题,顶部导航栏和标签栏具有不同的背景颜色。
我在AppDelegate.cs中有这个部分,它将顶部栏的主题设置为带有白色文本的漂亮绿色。
UINavigationBar.Appearance.BarTintColor = UIColor.FromRGB(6, 144, 70); //bar background
UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes()
{
TextColor = UIColor.White
});
UINavigationBar.Appearance.TintColor = UIColor.FromRGB(250, 250, 250); //Tint color of button items
问题是这也改变了我页面底部的标签栏的颜色。目前我尝试用它来改变它:
var tint = UIColor.FromRGB(6, 144, 70);
UITabBar.Appearance.BackgroundColor = UIColor.White;
UITabBar.Appearance.TintColor = UIColor.FromRGB(250, 250, 250);
但它似乎不起作用,标签的背景保持相同的绿色。
答案 0 :(得分:0)
如果只想更改整个标签栏的背景颜色。 使用代码
UITabBar. Appearance.BarTintColor = UIColor.FromRGB(250, 250, 250);
如果您只想更改所选项目的背景颜色。
使用代码
CGSize size = new CGSize( UIScreen.MainScreen.Bounds.Size.Width/5.0,44 );
//Background Color
UITabBar.Appearance.SelectionIndicatorImage = imageWithColor(size);
//Normal title Color
UITabBarItem.Appearance.SetTitleTextAttributes(new UITextAttributes { TextColor = UIColor.Blue }, UIControlState.Normal);
//Selected title Color
UITabBarItem.Appearance.SetTitleTextAttributes(new UITextAttributes { TextColor = UIColor.FromRGB(6, 144, 70)}, UIControlState.Selected);
public UIImage imageWithColor(CGSize size)
{
CGRect rect = new CGRect(0, 0, size.Width, size.Height);
UIGraphics.BeginImageContext(size);
using (CGContext context = UIGraphics.GetCurrentContext())
{
context.SetFillColor(UIColor.White.CGColor);
context.FillRect(rect);
}
UIImage image = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
return image;
}
颜色是我自己的颜色,您可以根据自己的需要进行更改。
答案 1 :(得分:-1)
我将svg图像与SkiaSharp一起用于在自定义页脚栏中显示图标。您可以更改图标的颜色。 您可以参考https://www.pshul.com/2018/01/25/xamarin-forms-using-svg-images-with-skiasharp/