This worked for me. When initializing your UIView, add an instance variable
"shapeLayer" and do this,
shapeLayer = [CAShapeLayer layer];
[[self layer] addSublayer:shapeLayer];
In drawRect, set up your path and do this,
CABasicAnimation *pathAnimation = [CABasicAnimation
animationWithKeyPath:@"strokeEnd"];
pathAnimation.duration = 4.0;
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];
[shapeLayer addAnimation:pathAnimation forKey:@"strokeEndAnimation"];
That seems to be all that is needed.
David
On Oct 23, 2012, at 11:37 AM, David Duncan <[email protected]> wrote:
> On Oct 23, 2012, at 4:37 AM, Roland King <[email protected]> wrote:
>
>> I want to animate the drawing of CGPath in a UIView, so it looks as if it's
>> being drawn. I have the UIView, I have the CGPath, I am able to split the
>> CGPath at any point from 0 to 100% into that which should be drawn and that
>> which shouldn't yet, that's all done, so I can, fairly efficiently, call
>> -(CGPath)[ myObject fractionalPath:(CGFloat)fraction ] and get a path.
>
>
> You can do this with a CAShapeLayer by animating the strokeEnd property.
> Should be very simple to do, although if your path is very complex it may
> make more sense to break it into pieces and use multiple shape layers
> animated sequentially.
> --
> David Duncan
>
>
> _______________________________________________
>
> Cocoa-dev mailing list ([email protected])
>
> 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/rowlandd%40sbcglobal.net
>
> This email sent to [email protected]
_______________________________________________
Cocoa-dev mailing list ([email protected])
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 [email protected]