1. NSView 不切割sub view 超出部分
superView.layer.masksToBounds = false;
[_superView1 setWantsLayer:true];
_superView1.layer.masksToBounds = false;
_superView1.layer.backgroundColor = NSColor.redColor.CGColor;
[_subView1 setWantsLayer:true];
_subView1.layer.backgroundColor = NSColor.blueColor.CGColor;
2. 设置super view的frame后,自动更新sub view
- sub view 添加约束
if ([[_containerView subviews] containsObject:_mainSplitView]) {
//layout main split view
[_mainSplitView setTranslatesAutoresizingMaskIntoConstraints:false];
NSLayoutConstraint *leading2 = [_mainSplitView.leadingAnchor constraintEqualToAnchor:_containerView.leadingAnchor];
NSLayoutConstraint *trailing2 = [_mainSplitView.trailingAnchor constraintEqualToAnchor:_containerView.trailingAnchor];
NSLayoutConstraint *top2 = [_mainSplitView.topAnchor constraintEqualToAnchor:_containerView.topAnchor];
NSLayoutConstraint *bottom2 = [_mainSplitView.bottomAnchor constraintEqualToAnchor:statusBarContainerView.topAnchor];
[_containerView addConstraints:@[leading2, trailing2, bottom2, top2]];
}
//更新frame
[_containerView setFrameSize:size];
[_containerView layoutSubtreeIfNeeded];