コア アニメーション プログラミング ガイドを読むと、サブレイヤーはデフォルトで、ホスト ビューの境界を超えても、クリップされずに拡張できると考えるようになりました。しかし、それは私に起こっていることではありません。
レイヤーをホストするカスタム ビューを初期化する方法は次のとおりです。
- (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 の境界にクリップされます。私は何が欠けていますか?