垂直に構成された2ビューNSSplitViewでサブビューの切り替え(置換)をアニメーション化する方法を理解しようとしています。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全体をプッシュする効果があります。
サブビューの遷移だけをアニメーション化する方法はありますか?おそらく私は間違ったアニメーションキー(「サブビュー」)を使用していますか?他のアニメーション方法でも問題ありません。
ありがとう!