实现步骤
- 创建一个继承自
UIView
的自定义视图,用于绘制圆形。
- 在自定义视图的
draw(_:)
方法中,使用 Core Graphics
绘制圆形。
- 绘制完成后,获取绘制的图像,并应用模糊效果。
- 将应用模糊效果后的图像绘制回视图。
关键代码
import UIKit
class BlurredCircleView: UIView {
override func draw(_ rect: CGRect) {
// 获取当前上下文
guard let context = UIGraphicsGetCurrentContext() else { return }
// 设置圆心和半径
let center = CGPoint(x: 100, y: 100)
let radius: CGFloat = 50
// 绘制圆形
context.addArc(center: center, radius: radius, startAngle: 0, endAngle: .pi * 2, clockwise: true)
context.setFillColor(UIColor.blue.cgColor)
context.fillPath()
// 获取绘制的图像
guard let image = UIGraphicsGetImageFromCurrentImageContext() else { return }
// 应用模糊效果
let filter = CIFilter(name: "CIGaussianBlur")!
filter.setValue(CIImage(image: image), forKey: kCIInputImageKey)
filter.setValue(10, forKey: kCIInputRadiusKey)
guard let outputImage = filter.outputImage else { return }
let blurredImage = UIImage(ciImage: outputImage)
// 清除当前上下文
context.clear(rect)
// 将模糊后的图像绘制回视图
blurredImage.draw(in: rect)
}
}
使用示例
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let blurredCircleView = BlurredCircleView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
blurredCircleView.center = view.center
view.addSubview(blurredCircleView)
}
}