touchesBegan 및 touchesMoved 지점에서 작성한 UIBezierPath 배열이 있습니다. 나는 그 (것)들의 끌기를 스크린에 살리고 싶다.UIBezierPath 배열의 애니메이션 그림
각 베 지어를 반복하지 않고 setNeedsDisplay()를 호출하지 않고 가장 좋은 방법은 무엇입니까? CAShapeLayer
를 사용하는
override func draw(_ rect: CGRect) {
for bezier in beziers{
bezier.stroke()
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
let cgPoint = touches.first!.location(in: self)
let bezierPath = ColorBezierPath() // subclass of UIBezierPath
bezierPath.lineWidth = lineWidth
bezierPath.color = color
bezierPath.move(to: cgPoint)
beziers.append(bezierPath)
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesMoved(touches, with: event)
let cgPoint = touches.first!.location(in: self)
let bezierPath = beziers.last
bezierPath?.addLine(to: cgPoint)
setNeedsDisplay()
}
요구 사항이 드로잉 앱과 관련이 있습니까? –
@PraveenKumar 네, "Draw Something"과 비슷합니다. UIBezierPath 배열을 저장하고 나중에 애니메이션에서 쇼 그리기를합니다. – Maor
나중에 무엇을 의미합니까? 무언가를 그릴 때마다 사용자를 표시하고 싶지 않습니까? ! –