Voici mon code:fading dans une vue pour une autre
- (IBAction)showTaskDetailView:(id)sender {
[window setContentView:viewTaskView];
}
Comment pourrais-je disparaître la vue actuelle et disparaître dans la vue détaillée?
Voici mon code:fading dans une vue pour une autre
- (IBAction)showTaskDetailView:(id)sender {
[window setContentView:viewTaskView];
}
Comment pourrais-je disparaître la vue actuelle et disparaître dans la vue détaillée?
Ne pas modifier l'affichage du contenu; mettre les deux vues dans le même point de vue du contenu, et utiliser NSViewAnimation à disparaître un et l'autre dans
Exemple de code here (retouché légèrement).
- (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];
}
Pouvez-vous fournir un exemple de code? – nanochrome
La documentation devrait être tout ce dont vous avez besoin. Vous allez initier l'animation avec deux dictionnaires: l'un a sa cible fixée à la vue pour disparaître et l'effet défini pour l'éteindre; l'autre a sa cible définie à la vue de fondre, et l'effet défini pour le fondre. N'oubliez pas de regarder dans la super-classe, NSAnimation, pour plus de méthodes (par exemple, pour définir la durée de l'animation). –