2013-07-12 30 views
2

我有一個支持層次的nsview(通過故事板設置)的子視圖超過了界限。出於某種原因它正在被剪輯。任何想法爲什麼發生這種情況?分層支持的nsview子視圖剪輯

+1

任何運氣找出爲什麼呢? – Sunkas

+0

您是否找到解決方案? – Robert

回答

1

默認情況下,NSView會將其子視圖剪裁到其邊界。

如果您有層支持NSView,alignmentRectInsets:可能會提供您的解決方案。它返回一個NSEdgeInsets,爲圖層的剪裁邊界添加一個邊距。覆蓋子視圖中的只讀屬性並返回所需的插圖。

如果您需要一種更復雜的方法來插入裁剪,請參閱alignmentRectForFrame:frameForAlignmentRect:

請參見:developer.apple.com/…/Cocoa/Reference/ApplicationKit/Classes/NSView_Class

1

我只是解決了這個問題。 儘管這個方法很簡單,但我浪費了一些時間。

有兩件事需要注意。

首先(最重要!!),你應該設置你的winow的contentview.wantsLayer YES;

然後,設置父視圖的layer.maskesToBounds NO;

我做了什麼:

self.window.contentView.wantsLayer = YES; 
self.testview.layer.backgroundColor = [NSColor clearColor].CGColor; 
self.testview.layer.borderWidth = 3; 
self.testview.layer.borderColor = [NSColor blueColor].CGColor; 
self.testview.layer.masksToBounds = NO; 
NSView *aView = [[NSView alloc]initWithFrame:NSMakeRect(-50, -20, 100, 100)]; 
aView.wantsLayer = YES; 
aView.layer.backgroundColor = [NSColor redColor].CGColor; 
[self.testview addSubview:aView]; 

的影響

enter image description here

GOOD LUCK

相關問題