Когда я пытаюсь нарисовать фигуру, как показано ниже, со следующими кодами, фигура показывает только половину линии штриха.
let shape = SKShapeNode()
shape.path = createPointerPath().cgPath
shape.position = CGPoint(x: frame.midX, y: frame.midY)
shape.fillColor = UIColor(red: 1.0, green: 0.439, blue: 0.678, alpha: 1.0)
shape.strokeColor = .white
shape.lineWidth = 2
addChild(shape)
Создать форму:
func createPointerPath() -> UIBezierPath {
let pointerPath = UIBezierPath()
pointerPath.move(to: CGPoint(x:0, y:0))
pointerPath.addCurve(to: CGPoint(x:0, y:100), controlPoint1: CGPoint(x:-10, y:0), controlPoint2: CGPoint(x:-50, y:100))
pointerPath.addCurve(to: CGPoint(x:0, y:0), controlPoint1: CGPoint(x:50, y:100), controlPoint2: CGPoint(x:10, y:0))
pointerPath.stroke()
pointerPath.close()
return pointerPath
}
Если я установлю x равным 10, он покажет еще одну половину линии, но форма не будет закрыта.
pointerPath.addCurve(to: CGPoint(x:10, y:0), controlPoint1: CGPoint(x:50, y:100), controlPoint2: CGPoint(x:10, y:0))
Любое предложение? Спасибо!
createPointerPath()
. Подозреваю, что баг в другом. Как вы рисуете внутреннюю заливку и внешний цвет? Проблема может быть там. - person Rob Napier   schedule 15.03.2017.stroke
в середине функции, которая возвращает путь. Это втягивается в текущий контекст, если он есть. Как правило, вы должны позволить вызывающему объекту обработать путь. (На самом деле, возможно, это часть вашей проблемы, если вы добавляете больше к этому пути после его возврата.) - person Rob Napier   schedule 15.03.2017.stroke
. - person Rob Napier   schedule 15.03.2017