如何更改NSImage / NSImageView的透明度?

时间:2016-06-02 18:30:37

标签: swift cocoa nsimageview

我在菜单栏中有一个视图,我正在放置一些图像。我想让它透明50%。我试过了:

let image = NSImage(named: "bar.pdf")
let imageView = NSImageView(frame: NSRect(x: 0, y: 0, width: 3, height: 11))
imageView.wantsLayer = true
imageView.alphaValue = 0.5 

但是,图像仍然完全不透明。

2 个答案:

答案 0 :(得分:0)

以下代码段似乎在操场上工作。您是否有可能实际设置一个视图的alphaValue但显示另一个视图?另外,设置视图的alphaValue并不会自己调用wantsLayertrue。最后,您的代码示例缺少设置视图图像的行,但我无法想象这与您的问题有什么关系(您设置这两个属性的顺序无关紧要)...

import XCPlayground
import Cocoa

let url = NSURL(string: "http://www.gravatar.com/avatar/cbfa20635c9269675d54547c080c9b64")!
let image = NSImage(contentsOfURL: url)!
let imageView = NSImageView(frame: CGRect(origin: .zero, size: image.size))
imageView.image = image
imageView.alphaValue = 0.5
XCPlaygroundPage.currentPage.liveView = imageView

答案 1 :(得分:0)

Apple在更新版本的swift中更改了一些名称:

这是一个Swift 3.0版本:

let url = URL(string: "http://www.gravatar.com/avatar/cbfa20635c9269675d54547c080c9b64")!
let image = NSImage(contentsOf: url)!
let imageView = NSImageView(frame: CGRect(origin: .zero, size: image.size))
imageView.image = image
imageView.alphaValue = 0.5
PlaygroundPage.current.liveView = imageView