Исчезновение в одном представлении для другого - PullRequest
2 голосов
/ 19 декабря 2009

Вот мой код:

- (IBAction)showTaskDetailView:(id)sender {
    [window setContentView:viewTaskView];
}

Как мне исчезнуть текущий вид и исчезнуть в подробном виде?

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Пример кода здесь (слегка подправлен):

- (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];    

}
1 голос
/ 19 декабря 2009

Не меняйте вид контента; поместите оба представления в одно и то же представление содержимого и используйте NSViewAnimation для постепенного исчезновения одного и другого в.

...