请注意以下gif。你看到的是我点击一个滑出表格视图的披露按钮。到现在为止还挺好。当我隐藏并重新打开表视图时,您将看到窗口的阴影消失。这不是故意的。当我再次隐藏表格视图时,阴影会重新出现。
我使用以下代码来实现此效果:
- (void) showListView {
NSView * listView = self.listViewController.view;
NSView * timerView = self.timerViewController.view;
timerView.layer.backgroundColor = [NSColor windowBackgroundColor].CGColor;
[self.view addSubview:listView positioned:NSWindowBelow relativeTo:nil];
self.listViewEdgesToEdgesOfSuperviewConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[listView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(listView)];
[self.view addConstraints:self.listViewEdgesToEdgesOfSuperviewConstraints];
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *ctx) {
self.timerViewBottomToSuperViewConstraint.animator.constant += listView.frame.size.height;
} completionHandler:^{
}];
}
- (void) hideListView {
NSView * listView = self.listViewController.view;
// Animate the disappearance of the list view
[NSAnimationContext runAnimationGroup:^(NSAnimationContext * context){
self.timerViewBottomToSuperViewConstraint.animator.constant = 0;
} completionHandler:^{
[self.view removeConstraints:self.listViewEdgesToEdgesOfSuperviewConstraints];
[listView removeFromSuperview];
}];
}
有谁知道为什么会这样,以及如何解决这个问题以便阴影显示?我没有尝试过任何我可以分享的解决方案,因为我不知道该做什么。
我很乐意提供您需要的任何其他信息。
编辑:上传了一个更好地说明问题的新gif。