Cocoa CALayer不显示NSImage

时间:2017-01-25 00:03:28

标签: macos cocoa swift3 calayer nsimage

在CALayer中显示NSImage时遇到问题

 init(image: NSImage) {
     self.image = image
     super.init(frame: .zero)
 }

 required init(coder aDecoder: NSCoder) {
     fatalError("init(coder:) has not been implemented")
 }

 override func viewWillDraw() {
     super.viewWillDraw()
     animationLayer.contentsGravity = kCAGravityResizeAspect
     animationLayer.frame = CGRect(x: 0, y: 0, width: frame.size.width, height: frame.size.height)
     animationLayer.contents = image.cgImage
     animationLayer.masksToBounds = true
     animationLayer.backgroundColor = NSColor.blue.cgColor

     wantsLayer = true
     layer?.addSublayer(animationLayer)
 }

backgroundColor设置为蓝色的CALayer渲染正常,但NSImage不是。 NSImage被确认为包含所需的图像,并在初始化类时设置。

在iOS框架中开发相同内容后,我很难看到其中的差异。

1 个答案:

答案 0 :(得分:1)

与iOS不同,macOS中image的{​​{1}}属性考虑CALayer而非NSImage表示。

CGImage