On Jun 8, 2013, at 6:04 AM, Daniele Margutti <m...@danielemargutti.com> wrote:

> Hi guys,
> I need to animate the frame of a CALayer instance; during the animation I 
> should also update/redraw the content of the layer based upon the new size 
> (frame by frame) of it.
> 
> I've tried to watch and use -displayLayer:inContext: of CALayer (it's a 
> delegate property) but It does not work: both with frame (it's a derived 
> property of bounds/location/anchorPoint) and bounds animation I can't receive 
> this message (it should be called by CALayer's internal drawInContext: 
> method) during the animation process.
> 
> Using needsDisplayOnBoundsChange I can get it called at the end of the 
> animation, but nothing with bounds.
> It works fine with custom properties (I need to return YES on 
> needsDisplayForKey method).
> 
> Any idea?

The behavior you see is correct. Remember that the model layer (the layer you 
have) only sees discrete values for an animation – typically the beginning and 
end values. The intermediate values are generated by the Core Animation for 
rendering and you are not called back for them.

As such needsDisplayOnBoundsChange will only cause the layer to display once 
when the bounds changes, and you will only get -drawLayer:inContext: called 
once as a result.

> Is possible to force redraw of CALayer contents during bounds/frame animation?

What kind of animation are you trying to produce? There are a few different 
ways you could do this, but you may run into performance problems from all the 
redrawing first.
--
David Duncan


_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to