在Interface Builder中定义自定义视图时,我无法弄清楚如何关闭子视图/子图层剪辑。当我以编程方式创建视图,并在StackOverflow上的许多问题中进行设置时,它适用于添加到视图的子视图和添加到view.layer的子图层。那些东西是:
((NSView*)containingWindow.contentView).wantsLayer = YES;
view.wantsLayer = YES;
view.layer.masksToBounds = NO;
完成这些操作后(按此顺序),一切都适用于在代码中创建的视图。如果我对在IB中创建的视图做同样的事情(或其他任何事情),我就无处可去。
我尝试使用定义方法的自定义NSView:
- (CALayer*)makeBackingLayer {
CALayer* layer = [CALayer layer];
layer.masksToBounds = NO;
return layer;
}
- (BOOL)wantsDefaultClipping {
return NO;
}
没有帮助。我还试过选中核心动画层"核心动画层"在IB中的视图效果中。这也没有帮助。最后,我试图关闭约束,以防万一是负责任的。也没用。
感谢任何帮助。我注意到的一件事是我的支持层视图" masksToBounds"从我设置它的方式开始NO,但是当我稍后记录视图层次结构时,它在同一个视图上变为YES(通过其内存地址验证。)
答案 0 :(得分:-4)
尝试:
myView.wantsDefaultClipping = NO;
也可以用于儿童观点。