在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框架中开发相同内容后,我很难看到其中的差异。
答案 0 :(得分:1)
与iOS不同,macOS中image
的{{1}}属性考虑CALayer
而非NSImage
表示。
CGImage