func setBackgroundImageView(_ rect: CGRect) -> () {
let width:CGFloat = rect.size.width
let height:CGFloat = rect.size.height
let radius:CGFloat = 3.0
let margin:CGFloat = 8.0
let rightMargin:CGFloat = 30
let angleBottomWidth:CGFloat = 8.0
let lineWidth:CGFloat = 0.5
let ref = UIGraphicsGetCurrentContext()
let path = UIBezierPath.init()
//起始点
path.move(to: CGPoint(x: radius, y: margin))
//顶部三角
path.addLine(to: CGPoint(x: width - rightMargin - angleBottomWidth, y: margin))
path.addLine(to: CGPoint(x: width - rightMargin - angleBottomWidth / 2, y: 0))
path.addLine(to: CGPoint(x: width - rightMargin, y: margin))
//右上角圆弧
path.addArc(withCenter: CGPoint(x: width - radius, y: margin + radius), radius: radius, startAngle: -CGFloat(Double.pi / 2), endAngle: 0.0, clockwise: true)
//右下角圆弧
path.addLine(to: CGPoint(x: width - lineWidth / 2, y: height - radius))
path.addArc(withCenter: CGPoint(x: width - radius, y: height - radius), radius: radius, startAngle: 0.0, endAngle: CGFloat(Double.pi / 2), clockwise: true)
//左下角圆弧
path.addLine(to: CGPoint(x: width - radius, y: height - lineWidth / 2))
path.addArc(withCenter: CGPoint(x: radius, y: height - radius), radius: radius, startAngle: CGFloat(Double.pi / 2), endAngle: CGFloat(Double.pi), clockwise: true)
//左上角圆弧
path.addLine(to: CGPoint(x: lineWidth / 2, y: margin + radius))
path.addArc(withCenter: CGPoint(x: radius, y: margin + radius), radius: radius, startAngle: CGFloat(Double.pi), endAngle: CGFloat(Double.pi * 1.5), clockwise: true)
//闭合
path.addLine(to: CGPoint(x: radius, y: margin))
//设置线宽
ref?.setLineWidth(lineWidth)
//路径添加到上下文
ref?.closePath()
ref?.addPath(path.cgPath)
//设置样式
UIColor.red.setStroke()//边框
UIColor.white.setFill()//填充样式
//渲染
ref?.drawPath(using: .fillStroke)
}
swift 4.0 UIGraphics绘制泡泡图
猜你喜欢
转载自blog.csdn.net/kuangdacaikuang/article/details/80601330
今日推荐
周排行