2017-09-01 136 views
1

我试图在自定义alertView中插入tableview。我需要达到与默认警报相同的风格。从调试视图层次结构我几乎复制了风格,但我无法弄清苹果如何设置模糊效果。我的自定义告警视图层次here复制/重现UIAlertView模糊效果

我试图以编程方式插入模糊的看法,但导致过暗,过白或同一透明度

let blur = UIVisualEffectView(effect: UIBlurEffect(style: .all of them)) 
    blur.frame = self.alertView.frame 
    blur.isUserInteractionEnabled = false 
    self.view.insertSubview(blur, at: 1) 

回答

-1

试试这个代码 -

let blur = UIVisualEffectView(effect: UIBlurEffect(style: .dark)) 
blur.frame = view.frame 
blur.alpha = 0.5 
blur.isUserInteractionEnabled = false 
self.view.insertSubview(blur, at: 1) 

希望这帮助!

0

他们有几个不同的对话,但这样的事情是一个很好的起点:

/// Composite view of blur + vibrancy + white bg color blending 
/// which recreates the Apple alert dialog effect 
lazy var dialogView: UIVisualEffectView = { 
    let blur = UIBlurEffect(style: .regular) 
    let blurView = UIVisualEffectView(effect: blur) 
    let vibrancy = UIVibrancyEffect(blurEffect: blur) 
    let vibrantView = UIVisualEffectView(effect: blurView.effect) 
    vibrantView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
    blurView.contentView.addSubview(vibrantView) 
    blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
    blurView.layer.cornerRadius = 20 
    blurView.layer.masksToBounds = true 
    let blendView = UIView() 
    blendView.backgroundColor = .white 
    blendView.alpha = 0.5 
    blendView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 
    blurView.contentView.addSubview(blendView) 
    return blurView 
}() 

然后只需将其添加到您的视图和约束W /自动布局。