Swift 3:如何创buildUIImageView的边缘/边angular模糊?
目前我有一个CALayer
应用于UIImageView
像这样:
let l: CALayer = imageView.layer l.masksToBounds = true l.cornerRadius = 20.0
我想要达到如下所示的模糊效果:
我已经尝试了以下内容:
let blurEffect = UIBlurEffect(style: .light) let visualEffectView = UIVisualEffectView(effect: blurEffect) imageView.addSubview(visualEffectView)
以及:
var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .light)) visualEffectView.frame = staffImageView.bounds imageView.addSubview(visualEffectView)
但是,两者都没有达到我想要的结果。
有人可以提供帮助吗? 这似乎很简单,但我无法实现。
更新:我试图玩渐变,但没有太多的运气:
var maskLayer = CAGradientLayer() maskLayer.frame = cell.imageView.bounds let black = UIColor.white.cgColor let clear = UIColor(white: 1, alpha: 0).cgColor maskLayer.colors = [black, clear] maskLayer.locations = [0.0, 0.10] maskLayer.startPoint = CGPoint(x: 1, y: 0) maskLayer.endPoint = CGPoint(x: 1, y: 1) cell.imageView.layer.addSublayer(maskLayer)
结果:
let maskLayer = CAGradientLayer() maskLayer.frame = yourImageView.bounds maskLayer.shadowRadius = 5 maskLayer.shadowPath = CGPath(roundedRect: YourImagView.bounds.insetBy(dx: 5, dy: 5), cornerWidth: 10, cornerHeight: 10, transform: nil) maskLayer.shadowOpacity = 1 maskLayer.shadowOffset = CGSize.zero maskLayer.shadowColor = UIColor.white.cgColor yourImageView.layer.mask = maskLayer
基于Vincent Joy版本
对于Swift 4:
let maskLayer = CAGradientLayer() maskLayer.frame = YourImagView.bounds maskLayer.shadowRadius = 5 maskLayer.shadowPath = CGPath(roundedRect: YourImagView.bounds.insetBy(dx: 5, dy: 5), cornerWidth: 10, cornerHeight: 10, transform: nil) maskLayer.shadowOpacity = 1; maskLayer.shadowOffset = CGSize.zero; maskLayer.shadowColor = UIColor.white.cgColor YourImagView.layer.mask = maskLayer;