Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 围绕中心旋转视图_Macos_Core Animation_Nsview - Fatal编程技术网

Macos 围绕中心旋转视图

Macos 围绕中心旋转视图,macos,core-animation,nsview,Macos,Core Animation,Nsview,我有自定义的NSView,它应该使用CoreAnimation(或osx sdk中提供的任何其他方式)围绕中心旋转。我尝试了很多解决方案,但nsview围绕左下角的点旋转,而不是围绕中心旋转,似乎总是忽略锚定点。我做错了什么 override func awakeFromNib() { super.awakeFromNib() spinnerView = NSView(frame: self.bounds) spinnerView.layer = CALayer() spinne

我有自定义的NSView,它应该使用CoreAnimation(或osx sdk中提供的任何其他方式)围绕中心旋转。我尝试了很多解决方案,但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")
}

它似乎不起作用,因为AppDelegate中的以下代码将NSWindow转换为层备份:

mainWindow.styleMask = mainWindow.styleMask | NSFullSizeContentViewWindowMask
在ViewController中添加以下代码有助于:

self.view.wantsLayer = true

它正在按您的期望为我工作。@Dario您是否使用mac os 10.10 sdk进行了测试?是的,在10.10上进行了测试当然。在OSX中,这是核心动画工作之前的一个要求,因为CA在层上运行。