u r welcome. On May 20, 2011, at 11:50 PM, Nick wrote:
> Great that did the trick :-) > Thanks, Gustavo > > 2011/5/21 Gustavo Pizano <gustavxcodepic...@gmail.com> > >> Hello nick. >> >> Try putting the fromValue also, I had some problems also with the blink, >> but right now I can't think of what I did to solve it, too much wine!!! :P >> >> maybe put the remove on competition to NO. :S >> >> >> >> On May 20, 2011, at 10:21 PM, Nick wrote: >> >> Chase, >> thank you for your responses. >> >> I actually tested both your code and the code of Gustavo. For me the result >> was the same - the opacity changes back to 1.0 when the animation had >> finished and then i hide it, which still causes blinking... >> Before the animation starts, i need to set the opacity to 1.0 for your code >> - the "animator" uses it as starting value (and the final value is specified >> by the line alphaAnimation.toValue = [NSNumber numberWithFloat:0.0];). >> >> So, since in the Layer Tree the opacity is 1.0, after the animation >> finishes, the view becomes opaque again. >> >> The only thing that worked for me was [[[myView] animator] >> setAlphaValue:0.0], which did not end up with the opacity 1.0 after >> animation had finished, but i need to use a timer to hide the view. I only >> was thinking there would be a "simpler" solution. >> >> Well, i guess i made up a big problem from a little desire to make my >> application to look more "alive" to the user :-) >> >> Here is a full code that ends up with the opacity 1.0 (instead of 0.0 as i >> needed to have) >> >> CABasicAnimation * alphaAnimation = [CABasicAnimation >> animationWithKeyPath:@"opacity"]; >> alphaAnimation.delegate = self; >> alphaAnimation.removedOnCompletion = YES; >> alphaAnimation.autoreverses = NO; >> alphaAnimation.timingFunction = [CAMediaTimingFunction functionWithName: >> kCAMediaTimingFunctionEaseInEaseOut]; >> >> alphaAnimation.duration = 1.0f; >> alphaAnimation.toValue = [NSNumber numberWithFloat:0.0]; >> >> >> >> [[theView layer] setOpacity:1.0]; >> [[theView layer] addAnimation:alphaAnimation forKey:@"opacity"]; >> >> >> >> >> 2011/5/20 Chase Latta <chasela...@gmail.com> >> >>> 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>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/gustavxcodepicora%40gmail.com > > This email sent to gustavxcodepic...@gmail.com _______________________________________________ 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