我已经将TabBarController
子类化,然后尝试制作渐变背景。但它似乎没有用。没有任何显示。我喜欢使用Hue框架
let tabBarGradient = [UIColor.redColor(), UIColor.blackColor()].gradient { gradient in
gradient.frame = self.tabBar.frame
gradient.startPoint = CGPointMake(0,0.5)
gradient.endPoint = CGPointMake(1,0.5)
return gradient
}
self.tabBar.layer.addSublayer(tabBarGradient)
答案 0 :(得分:9)
,编写以下代码:
import UIKit
class GradientTabBarController: 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)
}
}
您可以在标签栏中看到如下渐变:
您在故事板中将CustomTabBarController分配给TabBarController的故事板。
答案 1 :(得分:4)
使用
self.tabBar.layer.insertSublayer(layerGradient, at:0)
代替
self.tabBar.layer.addSublayer(layerGradient)
答案 2 :(得分:2)
为了扩展Khuong的答案,以上不适用于Y渐变,因为它使用view.Frame
来设置layerGradient.Frame
的宽度和高度。 view
是容器视图,比标签栏大。而是在设置layerGradient.Frame
时使用tabBar.Frame
:
layerGradient.frame = CGRect(x: 0, y: 0, width: tabBar.bounds.width,height: tabBar.bounds.height)