SK

Size: a a a
SK
SD
SK
АА
ВК
АА
ВК
ВП
М
path = UIBezierPath()
path.move(to: mainView.bounds.origin)
path.addLine(to: CGPoint(x: mainView.bounds.maxX - cornerRadius, y: mainView.bounds.minY))
path.addArc(
withCenter: CGPoint(x: mainView.bounds.maxX - cornerRadius, y: mainView.bounds.minY + cornerRadius),
radius: cornerRadius,
startAngle: (3 * .pi) / 2,
endAngle: 0,
clockwise:
true
)
path.addArc(
withCenter: CGPoint(x: headerView.bounds.maxX, y: headerView.bounds.maxY),
radius: concaveRadius,
startAngle: -.pi / 2,
endAngle: -(3 * .pi) / 2,
clockwise:
false
)
path.addLine(to: CGPoint(x: mainView.bounds.maxX, y: mainView.bounds.maxY))
path.addArc(
withCenter: CGPoint(x: mainView.bounds.maxX - cornerRadius, y: mainView.bounds.maxY - cornerRadius),
radius: cornerRadius,
startAngle: 0,
endAngle: .pi / 2,
clockwise:
true
)
path.addLine(to: CGPoint(x: mainView.bounds.minX, y: mainView.bounds.maxY))
path.addArc(
withCenter: CGPoint(x: mainView.bounds.minX + cornerRadius, y: mainView.bounds.maxY - cornerRadius),
radius: cornerRadius,
startAngle: .pi / 2,
endAngle: .pi,
clockwise:
true
)
path.addLine(to: CGPoint(x: mainView.bounds.minX, y: mainView.bounds.minY))
path.addArc(
withCenter: CGPoint(x: headerView.bounds.minX, y: headerView.bounds.maxY),
radius: concaveRadius,
startAngle: .pi / 2,
endAngle: (3 * .pi) / 2,
clockwise:
false
)
path.addArc(
withCenter: CGPoint(x: mainView.bounds.minX + cornerRadius, y: mainView.bounds.minY + cornerRadius),
radius: cornerRadius,
startAngle: .pi,
endAngle: (3 * .pi) / 2,
clockwise:
true
)
path.close()
let mask = CAShapeLayer()
mask.path = path.cgPath
mainView.layer.mask = mask
KK