여기 내 맞춤 클래스에서 일부 그래픽을 그립니다. 기능 drawTick()
내 GameTimer
UIView
에 파란색 사각형으로 CAShapeLayer
을 추가AnchorPoint for CAShapeLayer iOS Swift를 변경할 수 없습니다. Swift
tick.transform = CATransform3DMakeRotation(45.degreesToRadians, 0, 0, 1)
45도까지 회전 각도의
class GameTimer: UIView {
var tick = CAShapeLayer()
...
init(){
super.init(frame: CGRect(x: 0, y: 0, width: 200, height: 200)
}
...
func drawTick() {
tick.path = UIBezierPath(rect: CGRect(x: 0, y: 0, width: 50, height: 50)).cgPath
tick.fillColor = UIColor.blue.cgColor
self.layer.addSublayer(tick)
tick.anchorPoint = CGPoint(x: 0.5, y: 0.5)
tick.position = CGPoint(x: bounds.midX, y: bounds.midY)
tick.transform = CATransform3DMakeRotation(0.degreesToRadians, 0, 0, 1)
}
...
}
extension Double {
var degreesToRadians : CGFloat {
return CGFloat(self) * CGFloat(M_PI)/180.0
}
}
변경하기 다음 결과를 제공
선언 된 앵커 포인트가 tick
레이어에 영향을주지 않습니다. 파란색 직사각형의 중심에 있어야합니다. 회전은 좌표 (x : 0, y : 0) - 파란색 직사각형의 왼쪽 상단 구석 - tick.position
을 중심으로 진행됩니다. 질문 - 왜 anchorPoint
위치는 tick
레이어에 적용되지 않습니까? 이상한 행동은 여기에 anchorPoint
의 기본 위치가 이미 수동 지정없이 (x: 0.5, y: 0.5)
이어야한다고 가정하고 있지만이 무시를 제거하면 아무 것도 변경되지 않습니다.
감사합니다. 언급 한대로 정확하게 작동합니다. –