2017-01-25 22 views
0

возникают проблемы, отображающие NSImage в CALayerкакао 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) 
} 

The CALayer с backgroundColor набор в качестве синего рендеринга хорошо, но NSImage нет. NSImage подтверждается как содержащее требуемое изображение и устанавливается при инициализации класса.

Разработав то же самое в рамках iOS Framework, я изо всех сил стараюсь увидеть разницу.

ответ

1

В отличии прошивки image свойства CALayer в MacOs считает NSImage, а не его CGImage представления.

animationLayer.contents = image 
+0

Удалено с моего последнего комментария, так как это действительно сработало;) Спасибо – RichAppz