2013-10-09 56 views
0

Core Animation Programming Guide讓我相信,默認情況下,子圖層可以擴展到主視圖的邊界之外而不會被裁剪。但那不是我所發生的事情。爲什麼我的CALayer被我的NSView截斷?

下面是如何初始化我的層託管自定義視圖:

- (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範圍內。我錯過了什麼?

回答

5

技巧似乎是視圖必須包含在另一個視圖(也許是窗口的內容視圖),它有一個圖層。 (有記錄嗎?)

相關問題