如何在Swift中旋转弧形图层(UIBezier路径)?

时间:2019-07-19 10:20:38

标签: swift uibezierpath cashapelayer catransform3drotate

我使用具有共同半径的贝塞尔曲线路径创建了不同的弧,然后将这些图层添加到数组中。我试图通过使用for循环一起旋转所有弧,但是我无法做的是旋转整个圆(由弧组成),我知道使它们动起来的方法,但是动画会恢复到其原始位置。我对旋转圆圈感到困惑。

这是我的圈子的样子:

enter image description here

例如,如果我触发一个动作(点击按钮),它应该将图层整体旋转一定程度。

我搜索了关于stackoverflow的答案,但是大多数答案都不精确,其中一些答案是在目标C中。在我无法使用图层之前,该问题已得到解决,现在各层是交互式的。在点击图层时,我尝试旋转整个图层阵列,但结果始终是不同的。圆圈在UIView内。

let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapDetected(tapRecognizer:)))
    self.addGestureRecognizer(tapRecognizer)

@objc public func tapDetected(tapRecognizer:UITapGestureRecognizer) {
    let tapLocation:CGPoint = tapRecognizer.location(in: self)
    self.hitTest(tapLocation: CGPoint(x: tapLocation.x, y: tapLocation.y))
}


private func hitTest(tapLocation:CGPoint) {

for customLayer in layerArray {
    if customLayer.path?.contains(tapLocation) == true {
        print("Rotate It")
    } else {
        print("Do Nothing")
    }
}
}

如果有人可以举一个例子来解决我的问题,我将不胜感激。斯威夫特4

0 个答案:

没有答案