2016-08-13 12 views
2
  1. This、プロジェクトが現在
  2. のように見え、これは私は、次のコードを削除しようとした私は透明ナビゲーションバー迅速iOSの

    func styleNavBar() { 
    let navigationBarAppearace = UINavigationBar.appearance() 
    navigationBarAppearace.tintColor = UIColor(red:1.0, green:1.0, blue:1.0, alpha:1.0) 
    navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor(red:1.00, green:1.00, blue:1.00, alpha:1.0)] 
    navigationBarAppearace.translucent = true 
    
    navigationBarAppearace.backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.3) 
    navigationBarAppearace.setBackgroundImage(UIImage(), forBarMetrics: .Default)} 
    

を使用するコードは何かということですが、それはthisのように見えます。

navigationBarAppearace.setBackgroundImage(UIImage(), forBarMetrics: .Default) 

は、どのように私はnavbarがトップにいっぱいに私の質問を得るのですか?まだ同じ外観を持っています

+1

実際のコードを投稿し、コードの画像を投稿しないでください。 –

+0

'navigationBarAppearace.setBackgroundImage(UIImage()、forBarMetrics:.Default)'を取り除いてみてください。 –

+0

@SunilSharmaこれを試したところ、動作しましたが、navbarは透明な効果を失います。 – Victor

答えて

3

最初にUIImageの拡張子を作成し、指定されたサイズの無地の画像を作成します。 は、これはあなたの問題を解決することを願っています

、あなたのナビゲーションバーをカスタマイズするには、以下の方法を使用し

func styleNavBar() { 
    let navigationBarAppearace = UINavigationBar.appearance() 
    navigationBarAppearace.tintColor = UIColor(red:1.0, green:1.0, blue:1.0, alpha:1.0) 
    navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor(red:1.00, green:1.00, blue:1.00, alpha:1.0)] 
    navigationBarAppearace.isTranslucent = true 

    let colorImage = UIImage.imageWithColor(color: UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.3), size: CGSize(width: UIScreen.main.bounds.width, height: 64)) 
    navigationBarAppearace.setBackgroundImage(colorImage, for: .default) 
} 

extension UIImage { 

    class func imageWithColor(color: UIColor, size: CGSize) -> UIImage { 
    let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height) 
     UIGraphicsBeginImageContextWithOptions(size, false, 0) 
     color.setFill() 
     UIRectFill(rect) 
    let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()! 
     UIGraphicsEndImageContext() 
     return image 
    } 
} 

クラスラベルで任意ののViewControllerでこの拡張機能をキープ。

+0

ありがとう!完璧に動作します。 – Victor

2

私はUINavigationBarでこのコードを使用して透過的にしています。あなたのニーズに合わせて調整することができます。絵でsearchControllerがtitleViewにあります

if let topBar = self.navigationController?.navigationBar { 

     topBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) 
     topBar.shadowImage = UIImage() 
     topBar.barTintColor = UIColor.clearColor() 
     topBar.tintColor = UIColor.whiteColor() 
     topBar.translucent = true 


    } 

ここでは次のようになります。

Transparent navbar

関連する問題