1
我想弄清楚如何在垂直配置的2視圖NSSplitView中動畫切換(替換)子視圖。我知道了用我的NSSplitView子下面的方法半工作:用Core Animation替換NSSplitView子視圖
要設置動畫:
- (void)awakeFromNib {
// set delegate
[self setWantsLayer:YES];
CATransition *transition = [CATransition animation];
[transition setType:kCATransitionPush];
[transition setSubtype:kCATransitionFromBottom];
[transition setDuration:1.0];
[self setAnimations:[NSDictionary dictionaryWithObject:transition
forKey:@"subviews"]];
}
,並執行它:
- (void)replaceRightView:(NSView *)newView animated:(BOOL)animate {
NSRect currentSize = [[[self subviews] objectAtIndex:1] frame];
[newView setFrame:currentSize];
if (animate) {
[[self animator] replaceSubview:[[self subviews] objectAtIndex:1]
with:newView];
} else {
[self replaceSubview:[[self subviews] objectAtIndex:1]
with:newView];
}
}
然而,這段代碼具有關閉整個NSSplitView的效果,而不僅僅是分割右側的子視圖。
有沒有一種方法來動畫只是子視圖轉換?也許我使用錯誤的動畫鍵(「子視圖」)?其他動畫方法也可以。
謝謝!