Re: The simplest way to fade out a view
Re: The simplest way to fade out a view
- Subject: Re: The simplest way to fade out a view
- From: Quincey Morris <email@hidden>
- Date: Thu, 19 May 2011 15:18:03 -0700
On May 19, 2011, at 15:01, Nick wrote:
> No, only fade out (and fade in) effects are needed. I just added frame
> movement to see if animation works at all. Animation does work, but
> the fade does not happen - no matter, if the frame is moved
> simultaneously or not.
Here's my actual code for doing this. It works.
> NSMutableArray* dictionaries = [NSMutableArray array];
>
> // Create a dictionary for the animation parameters
>
> NSMutableDictionary* dictionary = [NSMutableDictionary dictionaryWithObject: subview forKey: NSViewAnimationTargetKey];
> [dictionaries addObject: dictionary];
>
> // Add a key for the target frame rect, if necessary
>
> if (!shouldBeHidden || !NSEqualRects (oldFrameRect, newFrameRect))
> [dictionary setObject: [NSValue valueWithRect: newFrameRect] forKey: NSViewAnimationEndFrameKey];
>
> // If the visibility is changing, add a key for the fade in or out
>
> if (!isHidden != !shouldBeHidden)
> {
> [dictionary setObject: shouldBeHidden ? NSViewAnimationFadeOutEffect : NSViewAnimationFadeInEffect forKey: NSViewAnimationEffectKey];
>
> // Work around a Snow Leopard bug ...
>
> if (!shouldBeHidden)
> [subview setHidden: shouldBeHidden];
> }
>
> // Create the animation
>
> NSViewAnimation* viewAnimation = [[NSViewAnimation alloc] initWithViewAnimations: dictionaries];
>
> viewAnimation.duration = 0.25;
> viewAnimation.animationCurve = NSAnimationEaseIn;
>
> [viewAnimation startAnimation];
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden