2017-03-04 54 views
0

ナビゲーションバーの上に影が表示されます。とにかくバーの下に影を移動するか、バーを変色させないようにコードを追加するのですか?影がナビゲーションバーを変色する

これは私が私のナビゲーションコントローラに使用したコードです:

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

Aいいね?

これは(写真は、画像を買い物)のようにそれが見えるようにしようと何イムです: (上部バー下の影第二のバーの色を保持したまま) enter image description here

+0

はちょうど 'self.navigationControllerを追加するには、コードも正しいと罰金 –

+0

、ナビゲーションコントローラを埋め込みます?。 navigationBar in self.navigationBar' –

+0

上記のviewDidLoad()関数は、それぞれのView Controllerクラスではなく、別のナビゲーションコントローラクラスにあります。 –

答えて

0

が下に勾配を有する画像表示を追加しました私が取り組んできたことを達成するために、バーの中で、@ Anbu.Karthikに感謝しました。これは私の現在のコードです:あなたのVCで

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) 
    } 
} 
関連する問題