Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Swift 如何在视图中设置背景图像_Swift_Image_Cocoa_Nsview - Fatal编程技术网

Swift 如何在视图中设置背景图像

Swift 如何在视图中设置背景图像,swift,image,cocoa,nsview,Swift,Image,Cocoa,Nsview,关于如何在iOS中将背景图像设置为UIView的问题,我找到了几个答案。 然而,对于macOS,尤其是cocoa,我无法解决这个问题。 我试着建立一些类似于 let bgImage = NSImage(named: "streaks") let pattern = NSColor(patternImage: bgImage!) self.view.layer?.background = pattern as! CGColor // this will fail on runtime 与UIVi

关于如何在iOS中将背景图像设置为UIView的问题,我找到了几个答案。 然而,对于macOS,尤其是cocoa,我无法解决这个问题。 我试着建立一些类似于

let bgImage = NSImage(named: "streaks")
let pattern = NSColor(patternImage: bgImage!)
self.view.layer?.background = pattern as! CGColor // this will fail on runtime

UIView
NSView
不同,它在默认情况下不支持图层,您必须启用它

self.view.wantsLayer = true
然后创建图像并将其指定给图层的
内容
属性

let image = NSImage(named: "streaks")
self.view.layer!.contents = image
斯威夫特4

    self.view.wantsLayer = true
    let image = NSImage(named: NSImage.Name(rawValue: "streaks"))
    self.view.layer!.contents = image

嗨,瓦迪安,是的,这正是我想要的。谢谢您,您是否知道如何将其设置为平铺图案图像?我不熟悉图案图像,但因为您正在处理颜色写入
self.view.layer!。backgroundColor=pattern.cgColor
是的,就是这样。但是,不必启用图层。即使未将self.view.wantsLayer设置为true,该选项也能正常工作。谢谢你的帮助
class CustomImageView: NSView { 

    open override func makeBackingLayer() -> CALayer {
        let backingLayer = super.makeBackingLayer()
        let image = NSImage(named: NSImage.Name(rawValue: "imageName"))
        backingLayer.contents = image
        return backingLayer
    }
}