У меня есть пользовательский NSView, который должен вращаться вокруг центра с помощью CoreAnimation (или любым другим способом, доступным в osx sdk). Я пробовал много решений, но nsview поворачивался вокруг нижней левой точки вместо центра и, кажется, всегда игнорировал опорную точку. что я делаю неправильно?Поворот NSView вокруг центра
override func awakeFromNib() {
super.awakeFromNib()
spinnerView = NSView(frame: self.bounds)
spinnerView.layer = CALayer()
spinnerView.wantsLayer = true
addSubview(spinnerView)
spinnerView.layer!.backgroundColor = NSColor.redColor().CGColor
spinnerView.layer!.position = CGPointMake(CGRectGetMidX(spinnerView.frame), CGRectGetMidY(spinnerView.frame))
spinnerView.layer!.anchorPoint = CGPointMake(0.5, 0.5)
startAnimation()
}
func startAnimation() {
let rotation = CABasicAnimation(keyPath: "transform")
rotation.duration = 10.0
rotation.toValue = 20 * M_PI
rotation.repeatCount = Float.infinity
rotation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
rotation.valueFunction = CAValueFunction(name: kCAValueFunctionRotateZ)
spinnerView.layer!.addAnimation(rotation, forKey: "transform.rotation.z")
}
Он работает как вы ожидаете от меня. – Dario
@ Dario вы проверили, используя mac os 10.10 sdk? – gvalmon
Да, яички 10.10 – Dario