anchorPoint
ist nicht die Position der CAShapeLayer zur Einstellung verwenden position
statt.
let layer = CAShapeLayer()
layer.borderColor = UIColor.blackColor().CGColor
layer.borderWidth = 100
layer.bounds = CGRectMake(0, 0, 50, 50)
layer.position = myView.center
layer.fillColor = UIColor.redColor().CGColor
view.layer.addSublayer(layer)
bearbeiten
Sorry für eine solche grobe Antwort vor, vor der Code kann nicht arbeiten, wie Sie wollen, hier ist die richtige Antwort, die ich kommen gerade. Eine wichtige Sache zu beachten ist: Wie Sie die ovale Bahn Effekt
let layer = CAShapeLayer()
myView.layer.addSublayer(layer)
layer.fillColor = UIColor.redColor().CGColor
layer.anchorPoint = CGPointMake(0.5, 0.5)
layer.position = CGPointMake(myView.layer.bounds.midX, myView.layer.bounds.midY)
layer.path = UIBezierPath(ovalInRect: CGRectMake(-75.0/2, -75.0/2, 75.0, 75.0)).CGPath
von Apple Dokument,
Die ovale Bahn im Uhrzeigersinn erzeugt wird (relativ die Position Ihrer CAShapeLayer
taten ziehen auf den Standardwert ist Koordinatensystem)
in anderen Worten, die ovale Bahn von der Kante anstelle der Mitte gezogen, so dass man in nehmen muß um den Radius des zu zeichnenden Ovals anzugeben. In Ihrem Fall müssen Sie dies tun:
layer.path = UIBezierPath(ovalInRect: CGRectMake(-75.0/2, -75.0/2, 75.0, 75.0)).CGPath
Jetzt stellen wir sicher, dass das Zentrum des gezogenen Weg zum Zentrum von CAShapeLayer
gleich ist. Dann können wir position
Eigenschaft verwenden, um die CAShapeLayer
zu verschieben, wie wir wollen. Das Bild unten könnte Ihnen helfen zu verstehen.