Ios 导航栏选项卡栏渐变颜色
这是我为选项卡栏控制器编写的代码:Ios 导航栏选项卡栏渐变颜色,ios,iphone,swift,uinavigationcontroller,gradient,Ios,Iphone,Swift,Uinavigationcontroller,Gradient,这是我为选项卡栏控制器编写的代码: class TabBarUiViewController: UITabBarController { let layerGradient = CAGradientLayer() override func viewDidLoad() { layerGradient.colors = [UIColor.init(red: 247/255, green: 146/255, blue: 30/255, alpha: 1).cg
class TabBarUiViewController: UITabBarController {
let layerGradient = CAGradientLayer()
override func viewDidLoad() {
layerGradient.colors = [UIColor.init(red: 247/255, green: 146/255, blue: 30/255, alpha: 1).cgColor, UIColor.init(red: 236/255, green: 104/255, blue: 66/255, alpha: 1).cgColor]
layerGradient.startPoint = CGPoint(x: 0, y: 0.5)
layerGradient.endPoint = CGPoint(x: 1, y: 0.5)
layerGradient.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height)
self.tabBar.layer.insertSublayer(layerGradient,at:0)
self.tabBar.unselectedItemTintColor = .black
super.viewDidLoad()
}
}
我想为导航控制器栏相同的颜色和图案。
我该怎么办?当我尝试时,它不像选项卡栏渐变那样容易
我正在为Tabbar寻找一个新的swift来源:
使用addSublayer而不是insertSublayer
类TabBarUiViewController:UITabBarController{
let layerGradient = CAGradientLayer()
override func viewDidLoad() {
super.viewDidLoad()
layerGradient.colors = [UIColor.red.cgColor, UIColor.yellow.cgColor]
layerGradient.startPoint = CGPoint(x: 0, y: 0.5)
layerGradient.endPoint = CGPoint(x: 1, y: 0.5)
layerGradient.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height)
self.tabBar.layer.addSublayer(layerGradient)
}
}
和导航栏:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Gradient Navigation Bar"
if let navFrame = self.navigationController?.navigationBar.frame {
let newframe = CGRect(origin: .zero, size: CGSize(width: navFrame.width, height: (navFrame.height + UIApplication.shared.statusBarFrame.height) ))
let image = gradientWithFrametoImage(frame: newframe, colors: [UIColor.red.cgColor, UIColor.blue.cgColor])!
self.navigationController?.navigationBar.barTintColor = UIColor(patternImage: image)
}
}
func gradientWithFrametoImage(frame: CGRect, colors: [CGColor]) -> UIImage? {
let gradient: CAGradientLayer = CAGradientLayer(layer: self.view.layer)
gradient.frame = frame
gradient.colors = colors
UIGraphicsBeginImageContext(frame.size)
gradient.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
希望这对您有所帮助。它对选项卡栏工作正常,我不知道如何为导航控制器进行编码。barOP的代码适用于
TabBar
。问题是关于NavigationBar
@shiju86.v它没有改变任何东西:|!!!!!!!!也许我做得不对!!!!我已经创建了一个uinavigationcontroller,并将我的uinavigationcontroller连接到该文件。我还添加了:gradient.startPoint=CGPoint(x:0,y:0.5)gradient.endPoint=CGPoint(x:1,y:0.5)从左到右是不是也可以使用这个函数为按钮添加渐变色?可能是重复的我已经尝试了你发送的这个链接,但对我的工具栏没有任何影响@Kamran您提供的链接是swift来源吗?第二个链接有一个红色导航栏,是swift代码,但根本不起作用,这就是我添加此问题的原因。好的,在此处添加与导航栏设置相关的代码。