复制/重现UIAlertView模糊效果
问题描述:
我试图在自定义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)
答
试试这个代码 -
let blur = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
blur.frame = view.frame
blur.alpha = 0.5
blur.isUserInteractionEnabled = false
self.view.insertSubview(blur, at: 1)
希望这帮助!
答
他们有几个不同的对话,但这样的事情是一个很好的起点:
/// 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 /自动布局。