Did you try making that change in your code?  If yes, is your view layer 
backed?  

I work mainly on iOS so I could be missing something but the code worked 
without blinking for me on 10.6. 

What is happening, as I think I understand it, is that by setting the opacity 
of your view's layer to 0.0 you trigger the implicit animation for opacity. But 
if you add an animation for the opacity key path that animation will be used. 
What you are doing is simply adding an animation. When it finishes it jumps 
back to the original value before you hide it. You need to set the opacity of 
your layer to zero at some point in your code. The animation that you see is 
actually the animation of the presentationLayer. 

I could be wrong on how all this works but my quick test does not cause the 
view to blink. 

Chase


On May 20, 2011, at 12:26 PM, Nick <eveningn...@gmail.com> wrote:

> Chase,
> the animation itself worked and works - either with your code or with 
> Gustavo's.
> 
> But after the animation finishes, the opaqueness of the view again becomes 
> 1.0 again. Then the "animationDidStop" gets called and the view disappears. 
> But before disappearing, it annoyingly blinks (so, the opaqueness changes 
> like this: 1.0, 0.9, 0.8, ..., 0.1, 1.0, hidden).
> 
> I am wondering how could i make it save the final state of the animation - to 
> remain transparent when the "animationDidStop" callback gets called - which 
> will allow the view not to blink.
> 
> I understand (i hope i do :-) )  that i am actually changing the opaqueness 
> of the layer (i.e., of the temporary graphical representation) and not of the 
> view itself, but maybe i could get rid of blinking somehow. 
> Thank you!
> 
> 2011/5/20 Chase Latta <chasela...@gmail.com>:
> >> How could i force the animation to actually change the alpha value
> >> from 1.0 to 0.0 and make it stay 0.0 unless i change it back?
> >
> > Change your code to look like this:
> >
> > CABasicAnimation * alphaAnimation  = ...
> >  ...
> >    [[theView layer] setOpacity:0.0];  // Set your opacity here
> >    [[theView layer] addAnimation:alphaAnimation forKey:@"opacity"];
> > // Note the key
> > }
> >
> > By setting the key to @"opacity" instead of @"opacityAnimation" your
> > animation will used instead of the default animation when you call
> > [CALayer setOpacity:].
> >
> > There is a good WWDC talk about animation on the ipad that addresses
> > this.  I don't remember the exact talk, though.
> >
> > Chase
> >
> 
_______________________________________________

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

Reply via email to