2016-06-22 49 views
0

我一直在試圖讓我的scrollView出現在導航條下面的效果稍微模糊,就像蘋果消息應用程序中的情況一樣。我曾嘗試以下方法和它們都沒有工作:如何在我的UINavigationBar後面獲得模糊效果

1:

self.navigationController?.navigationBar.isTranslucent = true 

2:

self.navigationController?.navigationBar.barStyle = UIBarStyle.blackTranslucent 

3:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default) 

4:

self.navigationController?.navigationBar.backgroundColor = UIColor.clear() 

我已經閱讀了許多文章與上述方法的變化,並嘗試了大多數,但無濟於事。我認爲設置點是透明=真正的是得到完全的效果。還有什麼我應該嘗試?基本上我只想讓我的導航欄稍微透明。

回答

0
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark) 
    let blurEffectView = UIVisualEffectView(effect: blurEffect) 
    blurEffectView.frame = (self.navigationController?.navigationBar.bounds)! 
    self.navigationController?.navigationBar.addSubview(blurEffectView) 
2

UIViewEffectView是你正在尋找的東西,充分證明here

let bounds = self.navigationController?.navigationBar.bounds as CGRect! 
let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light)) 
visualEffectView.frame = bounds 
self.navigationController?.navigationBar.addSubview(visualEffectView) 

這就是說,用你的方法1和2一起也應努力:

self.navigationController.navigationBar.translucent = YES; 
self.navigationController.navigationBar.topItem.title = @"Contacts"; 
self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 

enter image description here

0

您可以在這裏添加此代碼用於導航酒吧模糊效果這個功能是您的最佳選擇

func navigationBlurEffect() { 
    // Add blur view 
    let bounds = self.navigationController?.navigationBar.bounds as CGRect! 
    let visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light)) 
    visualEffectView.frame = bounds 
    visualEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 

    //here you can choose one 
    self.navigationController?.navigationBar.addSubview(visualEffectView) 
    // Or 
    /* 
If you find that after adding blur effect on navigationBar, navigation buttons are not visible then add below line after adding blurView code. 
    */ 
    self.navigationController?.navigationBar.sendSubviewToBack(visualEffectView) 

    // Here you can add visual effects to any UIView control. 
    // Replace custom view with navigation bar in above code to add effects to custom view. 
} 

enter image description here

// **這是僅適用於圖像模糊代碼 而這種代碼可用於圖像模糊效應

func getImageBlur(image:UIImageView){ 
     let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light) 
     let blurEffectView = UIVisualEffectView(effect: blurEffect) 
     blurEffectView.frame = (image.bounds) 
     blurEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight] 
     image.addSubview(blurEffectView) 
    }