Я пытаюсь добавить bezierPath в качестве подслоя представления.
Ниже мой код
let arrPoints = Array(picture.points)
let bezierPath = UIBezierPath()
bezierPath.move(to: CGPoint(x: (arrPoints.first?.x.cgFloat()!)! * scaleX,
y: (arrPoints.first?.y.cgFloat()!)! * scaleY))
for index in 1...(arrPoints.count - 1) {
let point = arrPoints[index]
bezierPath.addLine(to: CGPoint(x: point.x.cgFloat()! * scaleX,
y: point.y.cgFloat()! * scaleY))
}
let shapeLayer = CAShapeLayer()
shapeLayer.path = bezierPath.cgPath
shapeLayer.strokeColor = UIColor(hexString: picture.color)!.cgColor
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.lineWidth = picture.brushSize.cgFloat()!
let viewSymbol = SVGImageView(frame: CGRect(origin: origin, size: size))
viewSymbol.accessibilityHint = "Brush"
viewSymbol.isUserInteractionEnabled = true
viewSymbol.alpha = picture.alpha.cgFloat()!
viewSymbol.layer.insertSublayer(shapeLayer, at: 0)
viewSymbol.backgroundColor = UIColor(hexString: "#dfdfdf", transparency: 0.25)
viewLayerActive!.addSubview(viewSymbol)
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(_:)))
viewSymbol.addGestureRecognizer(panGesture)
Кроме того, прикрепленное изображение показывает результат моей текущей реализации, где синее обведенное поле справа - подслой, а поле LightGray над Szpilman
- представление, к которому я добавляю подслой
Как добавить подслой точно в серый квадрат?