无法获得模糊效果

时间:2017-08-29 11:04:35

标签: objective-c swift swift3 uivisualeffectview uiblureffect

我在storyBorad中使用了UIVisual Effect视图。我只是为该视图设置了四个约束(顶部,底部,左侧,右侧)。但它背后看起来有些黑色的颜色。

源代码:

import UIKit

class SignOutViewController: UIViewController {

    @IBOutlet weak var signouTitle: UILabel!
    @IBOutlet weak var desc1: UILabel!
    @IBOutlet weak var desc2: UILabel!
    @IBOutlet weak var cancelButton: UIButton!
    @IBOutlet weak var sureButton: UIButton!
    @IBOutlet weak var alertView: UIView!
    @IBOutlet weak var seperatorView: UIView!
    @IBOutlet weak var buttonsSuperView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        prepareAlertView()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        alertView.layer.cornerRadius = alertView.frame.height * 0.05

    }

    private func prepareAlertView() -> Void{
        signouTitle.text = "Sign Out"
        desc1.text = "Do you really want to sign out"
        desc2.text = "from this account"
        signouTitle.textColor = UIColor(red: 1 / 255, green: 170 / 255, blue: 112 / 255, alpha: 1)
        desc1.textColor = UIColor(red: 195 / 255, green: 195 / 255, blue: 195 / 255, alpha: 1)
        desc2.textColor = UIColor(red: 195 / 255, green: 195 / 255, blue: 195 / 255, alpha: 1)
        cancelButton.setAttributedTitle(NSAttributedString(string: "Cancel", attributes: [NSFontAttributeName: UIFont.getProximaNovaSemibold(size: 16), NSForegroundColorAttributeName: UIColor.white]), for: .normal)
        sureButton.setAttributedTitle(NSAttributedString(string: "Sure", attributes: [NSFontAttributeName: UIFont.getProximaNovaSemibold(size: 16), NSForegroundColorAttributeName: UIColor.white]), for: .normal)
        self.view.backgroundColor = UIColor.black.withAlphaComponent(0.65)
        buttonsSuperView.backgroundColor = UIColor(red: 1 / 255, green: 170 / 255, blue: 112 / 255, alpha: 1)
        alertView.backgroundColor = UIColor(red: 36 / 255, green: 36 / 255, blue: 40 / 255, alpha: 1)
    }

    @IBAction func cancelTapped(_ sender: Any) {
        self.dismiss(animated: true, completion: nil)
    }

    @IBAction func sureTapped(_ sender: Any) {
    }

}

我以编程方式添加了UIVisual effectView。我需要visualEffect作为viewHierarchy中的第-1个位置。但它反应相同..

2 个答案:

答案 0 :(得分:0)

试试这个

let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = view.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
view.addSubview(blurEffectView)

答案 1 :(得分:0)

我遇到了完全相同的问题。我做的是我刚刚使用了一个新的故事板并使用屏幕截图中的设置以模态方式呈现它。然后模糊效果完美,而不是显示黑屏。如果您想以编程方式执行此操作,也可以将其转换为代码。

注意:这些设置适用于segue。

enter image description here