如何使用PNG蒙版剪辑模糊UIVisualEffectView?

时间:2017-07-21 17:14:29

标签: ios swift uiimage uiblureffect

我有一个模糊的UIVisualEffectView,想用PNG UIImage掩盖它。

我现在有这个代码,但是如果我应用了蒙版,那么视图就不会再应用模糊效果了。

let maskLayer = CAShapeLayer()
maskLayer.contents = UIImage(named: "botnavbarmask")?.cgImage

let maskView = UIView(frame: self.view.frame)
maskView.backgroundColor = UIColor.black
maskView.layer.mask = maskLayer

blurBottom.mask = maskView

是否可以将遮罩应用于模糊效果?

感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

使用以下代码行

let maskLayer = CAShapeLayer()
maskLayer.contents = UIImage(named: "icono-menu")?.cgImage

maskLayer.frame = self.blurBottom.bounds
self.blurBottom.layer.masksToBounds = true
self.blurBottom.layer.mask = maskLayer

希望这有助于你

答案 1 :(得分:0)

UIVisualEffectView有点不稳定。如果您拍摄效果视图的快照,然后应用蒙版怎么办?

func imageFromView(_ view: UIView) -> UIImage {

    UIGraphicsBeginImageContextWithOptions(view.frame.size, false, 0.0)
    view.drawHierarchy(in: view.frame, afterScreenUpdates: true)
    let snapshotImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()
    return snapshotImage
}

我有一半期望效果观不会出现,但可能值得一试。

答案 2 :(得分:0)

这里是:

let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .light))
let logoView = UIImageView(image: #imageLiteral(resourceName: "logo"))
blurView.mask = logoView