CAAnimation isn't that complicated. CABasicAnimation * alphaAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; alphaAnimation.delgate = self; alphaAnimation.removedOnCompletition = YES; alphaAnimation.autoreverses = NO; alphaAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; alphaAnimation.duration = 1.0f; alphaAnimation.toValue = [NSNumber numberWithFloat:0.0];
[myView.layer addAnimation:alphaAnimation forKey:@"opacityAnimation"]; then you can implement the delegate's method - (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag and do whatever you need there after completition Note: remember to put your view to acceptLayer to YES; you can change that property anytime, but don't do it so ofthen :P I hope it helps BTW I wrote this on mail app so I hadn't compile it or run it. On May 20, 2011, at 12:35 PM, Nick wrote: > This sample works exactly as mine - the button remains on the screen > completely opaque and the suddenly disappears after 0.25 secs pass. > (Snow Leopard) > > So i guess unless i find time to read that huge guide about Core > Animation and manage to adapt CAAnimation, i will use that approach > with [[myview animator] setAlphaValue:0.0]; and a timer that hides the > view, which was suggested by Chase > > > 2011/5/20 Quincey Morris <quinceymor...@earthlink.net>: >> 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 (Cocoa-dev@lists.apple.com) 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com