阴影褪色导航栏

时间:2017-03-04 05:10:36

标签: ios swift3

阴影出现在导航栏的顶部。反正有没有移动条形下面的阴影或添加一些代码,所以它不会褪色条?

这是我在导航控制器中使用的代码:

    import UIKit

    class navigationController:UINavigationController, UIViewControllerTransitioningDelegate{


    override func viewDidLoad()
    {
        var appblue = UIColor(red: 109/255, green: 208/255, blue:247/255, alpha: 1.0)
        self.navigationBar.barTintColor = appblue
        self.navigationBar.layer.masksToBounds = false
        self.navigationBar.layer.shadowColor = UIColor.black.cgColor
        self.navigationBar.layer.shadowOpacity = 0.7
        self.navigationBar.layer.shadowOffset = CGSize(width: 0, height: 2.0)
        self.navigationBar.layer.shadowRadius = 4
    }
}

这就是它的样子:

enter image description here

应该是这种颜色:

enter image description here

有什么建议吗?

这就是我试图让它看起来像(照片购物图片): (顶部条形底部阴影,同时保留第二条颜色) enter image description here

1 个答案:

答案 0 :(得分:0)

在栏的底部添加了一个带有渐变的图像视图,以实现我的目标,感谢@ Anbu.Karthik链接另一个我能够适应的问题。这是我目前的代码:

import UIKit

class navigationController:UINavigationController, UIViewControllerTransitioningDelegate{

override func viewDidLoad()
    {
        var appblue = UIColor(red: 109/255, green: 208/255, blue:247/255, alpha: 1.0)
        self.navigationBar.barTintColor = appblue
        self.navigationBar.layer.masksToBounds = false

        var yPosition = self.navigationBar.layer.frame.height
        var rectWidth = self.navigationBar.layer.frame.width
        let gradient = CAGradientLayer()
        let bottomShadow: UIImageView = UIImageView()
        bottomShadow.frame = CGRect(x: 0, y: yPosition, width: rectWidth, height: 8)
        gradient.frame = bottomShadow.bounds
        gradient.colors = [UIColor.lightGray.cgColor, UIColor(white: 1, alpha: 0).cgColor]

        navigationBar.addSubview(bottomShadow)
        bottomShadow.layer.insertSublayer(gradient, at: 0)
    }
}