これが私のコードです:
- (IBAction)showTaskDetailView:(id)sender {
[window setContentView:viewTaskView];
}
現在のビューをフェードアウトして詳細ビューをフェードインするにはどうすればよいですか?
これが私のコードです:
- (IBAction)showTaskDetailView:(id)sender {
[window setContentView:viewTaskView];
}
現在のビューをフェードアウトして詳細ビューをフェードインするにはどうすればよいですか?
ここにあるサンプルコード(わずかに微調整):
- (void)crossFadeWithOld:(NSView *)oldView andNew:(NSView *)newView
{
[window setContentView:newView];
NSDictionary *oldFadeOut = nil;
if (oldView != nil) {
oldFadeOut = [NSDictionary dictionaryWithObjectsAndKeys:
oldView, NSViewAnimationTargetKey,
NSViewAnimationFadeOutEffect,
NSViewAnimationEffectKey, nil];
}
NSDictionary *newFadeIn;
newFadeIn = [NSDictionary dictionaryWithObjectsAndKeys:
newView, NSViewAnimationTargetKey,
NSViewAnimationFadeInEffect,
NSViewAnimationEffectKey, nil];
NSArray *animations;
animations = [NSArray arrayWithObjects:
newFadeIn, oldFadeOut, nil];
NSViewAnimation *animation;
animation = [[NSViewAnimation alloc]
initWithViewAnimations: animations];
[animation setAnimationBlockingMode: NSAnimationBlocking];
[animation setDuration: 0.5]; // or however long you want it for
[animation startAnimation]; // because it's blocking, once it returns, we're done
[animation release];
}
コンテンツビューを変更しないでください。両方のビューを同じコンテンツビューに配置し、 NSViewAnimationを使用して一方をフェードアウトし、もう一方をフェードインします。