Я пытаюсь повернуть CAShapeLayer вокруг своей центральной точки. Я действительно запутался в границах, кадрах, якорях и центрах.CAShapeLayer Driving me bonkers
Я создал круговой CAShape в UIView и хочу повернуть его вокруг его центра. Я включил только часть кода.
Функция Создать круг Я желаю, чтобы повернуть:
func drawCompassImage(){
//Compass Bezel Ring
let baseCirclePath = UIBezierPath()
baseCirclePath.addArcWithCenter(CGPoint(x: CGFloat(self.frame.width/2), y: CGFloat(self.frame.width/2)), radius: CGFloat(baseCircleRadius), startAngle: CGFloat(-M_PI_2), endAngle:CGFloat(M_PI_2*3), clockwise: true)
compassImage.path = baseCirclePath.CGPath
compassImage.fillColor = UIColor.clearColor().CGColor;
compassImage.strokeColor = UIColor.whiteColor().CGColor
compassImage.lineDashPattern = [1.0,2.0]
compassImage.lineWidth = 10.0
self.layer.addSublayer(compassImage)
}
Функция создать красную точку:
func drawCompassRedDot() {
let compassBall = CAShapeLayer()
let compassBallPath = UIBezierPath()
let compassBallRadius :CGFloat = 5
let xStart: Float = Float(Float(baseCircleRadius) * cos(270 * Float(M_PI)/180)) + Float(self.frame.width/2)
let yStart: Float = Float(Float(baseCircleRadius) * sin(270 * Float(M_PI)/180)) + Float((self.frame.height/2)+0)
compassBallPath.addArcWithCenter(CGPoint(x: CGFloat(xStart), y: CGFloat(yStart)), radius: compassBallRadius, startAngle: CGFloat(-M_PI_2), endAngle:CGFloat(M_PI_2*3), clockwise: true)
compassBall.path = compassBallPath.CGPath
compassBall.fillColor = UIColor.redColor().CGColor;
compassBall.strokeColor = UIColor.redColor().CGColor
compassBall.lineWidth = 1.0
self.compassImage.addSublayer(compassBall)
}
Функции для вращения:
func animate(){
compassImage.transform = CATransform3DMakeRotation(degree2radian(45), 0, 0, 1)
}
func degree2radian(a:CGFloat)->CGFloat {
let b = CGFloat(M_PI) * a/180
return b
}
Мой вопрос независимо Я стараюсь, чтобы он всегда заканчивался:
Два круга должны иметь одинаковый центр.
Пожалуйста, помогите это посылает меня помешанные ...
Вы можете оставить немного больше контекста для того, где называются эти функции, так что я и другие могут помочь вам больше? @ duck1970 – Ike10
Привет, я добавил полный код из класса – duck1970