UITabBar swift中缺少按钮

时间:2018-07-14 12:56:18

标签: ios iphone swift uitabbarcontroller gradient

我在我的标签栏上添加了一个自定义渐变层,以使其更加用户友好。但我的标签栏按钮位于渐变层下方。 有人知道这是怎么回事吗? The UI image just to clarify what I mean

class TabBarUiViewController: UITabBarController {

   let layerGradient = CAGradientLayer()
    override func viewDidLoad() {
       super.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.addSublayer(layerGradient)
    }
}

这是我在网上找到的全部代码

1 个答案:

答案 0 :(得分:1)

替换此

self.tabBar.layer.addSublayer(layerGradient)

使用

self.tabBar.layer.insertSublayer(layerGradient,at:0)

//

选择的颜色和未选择的颜色应为

self.tabBar.tintColor = .green
self.tabBar.unselectedItemTintColor = .blue

在必须将颜色的Alpha设置为1的情况下,应使用insertSublayer,在这种情况下,可以使用addSublayer,但要显示按钮,则需要设置两种颜色的Alpha渐变为0.5或在其后面显示UI元素(也为图层)的内容