【问题标题】:CALayer setContents is not working on 10.5CALayer setContents 不适用于 10.5
【发布时间】:2012-08-06 14:58:07
【问题描述】:

我有以下代码

[[mWindow contentView] setWantsLayer:YES]; //mWindow is NSWindow object
[[mWindow contentView] layer].contents = [NSImage imageNamed:@"1.png"];  

此代码在 10.6 上运行良好,但在 10.5 mWindow 上没有显示任何内容。为什么?

NSlog(@"%@",[[mWindow contentView] layer].contents)  //10.5
NSImage 0x15d030 Size={565, 305} Reps=(
    NSBitmapImageRep 0x166400 Size={565, 305} ColorSpace=NSCalibratedRGBColorSpace BPS=8 BPP=24 Pixels=565x305 Alpha=NO Planar=NO Format=0
)

【问题讨论】:

    标签: objective-c cocoa calayer nswindow


    【解决方案1】:

    因为您无法在 10.5 中将 NSImage 传递给 setContents:。请参阅CALayer 的文档。

    contents 提供层内容的对象。 动画。

    @property(retain) id 内容讨论 this 的默认值 财产为零。当此属性为 nil 时,图层内容为 渲染到层管理的后备存储。

    您可以将此属性设置为 CGImageRef 以呈现 图像代替图层的内容。 (在 OS X 10.6 及更高版本中, 您也可以将其设置为 NSImage 对象。) 将图像分配给它 属性将图层自己的后备存储替换为图像的 内容。

    可用性 适用于 OS X v10.5 及更高版本。另请参阅@property CALayer.h中声明的contentsRect相关示例代码LightTable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2012-06-24
      • 2011-11-26
      • 2012-03-30
      相关资源
      最近更新 更多