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

Reply via email to