我的目标很简单,将标签栏的默认背景颜色更改为我自己的颜色。
例如,默认值如下所示
我创建了自己的UITabBarController子类,因此我不需要在每个UIViewController上更改颜色
import UIKit
class MyTabController: UITabBarController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tabBar.backgroundColor = .black
}
}
结果与我的预期不同。
我认为这可能是它的颜色,然后我改为自定义UIColor,颜色看起来完全一样。
我也尝试更改条纹色调,但它在活动时更改图标的颜色,而不是背景
self.tabBar.tintColor = UIColor(red:1.00, green:0.23, blue:0.19, alpha:1.0)
结果将是
我做错了什么?
答案 0 :(得分:2)
您应该使用self.tabBar.barTintColor
或查看UIBarStyle和self.tabBar.barStyle
,看看是否有效。
答案 1 :(得分:0)
我的应用程序遇到了同样的问题,但我想在tabbar背景中设置渐变图像,我想出了以下内容: 在 applicationDidFinishLaunching 方法中,我创建了一个绘制渐变的函数,并使用我的UITabBarController实例根据设备的宽度设置正确的渐变框架。
- (UIImage *)drawGradientInView:(UITabBarController *) tabBarVC {
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = CGRectMake(CGRectGetMinX(tabBarVC.tabBar.frame), CGRectGetMinY(tabBarVC.tabBar.frame), CGRectGetWidth(tabBarVC.view.frame), CGRectGetHeight(tabBarVC.tabBar.frame));
//set up your gradient
//......
UIImage *gradientImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return gradientImage;
}
获取UITabBarController的实例
UITabBarController *tabVC = (UITabBarController *)[UIApplication sharedApplication].windows.firstObject.rootViewController;
设置渐变
[UITabBar appearance].backgroundImage = [self drawGradientInView:tabVC];
我不确定这是否是正确的方法,但它对我有用。