【发布时间】:2013-10-09 18:30:54
【问题描述】:
Core Animation Programming Guide 让我相信,默认情况下,子层可以扩展到主机视图的边界之外而不会被剪裁。但这不是我正在发生的事情。
这是我初始化我的图层托管自定义视图的方法:
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self != nil) {
mBaseImage = [[NSImage imageNamed: @"Button.png"] retain];
mSliderImage = [[NSImage imageNamed: @"Track.png"] retain];
mRootLayer = [CALayer layer];
mRootLayer.masksToBounds = NO;
[self setLayer: mRootLayer ];
[self setWantsLayer: YES];
mRootLayer.contents = mBaseImage;
mSliderLayer = [CALayer layer];
[mRootLayer addSublayer: mSliderLayer];
NSSize imSize = [mSliderImage size];
NSRect sliderBounds = NSMakeRect( 0.0f, 0.0f, imSize.width, imSize.height );
mSliderLayer.bounds = sliderBounds;
mSliderLayer.contents = mSliderImage;
mSliderLayer.position = NSMakePoint( 31.0f, 31.0f );
}
return self;
}
主视图和用作其内容的图像是 62x62,而子层图像是 90x10。但是整个事情都被限制在 62x62 的范围内。我错过了什么?
【问题讨论】:
标签: macos cocoa core-animation calayer