I wanted to indicate the most recent move in an AI-on-AI game of TicTacToe, so I wanted to have the most recent move be highlighted. The Xs and Os are CAShapeLayer
objects.
Here's the code to do it, ~~featuring a very ugly hack to cast an IntPtr
to an NSObject
~~ Including the use of SetTo
and SetFrom
to use a type that is not an NSObject
in CABasicAnimation
(thanks Sebastien!):
[code lang="csharp"]
var layer = mark == 'X' ? ShapeLayer.XLayer (endFrame) : ShapeLayer.OLayer (endFrame);
layer.Position = origin;
this.Layer.AddSublayer (layer);
var animation = CABasicAnimation.FromKeyPath ("strokeColor");
animation.SetFrom(UIColor.Green.CGColor);
animation.SetTo(layer.StrokeColor);
animation.Duration = 0.5;
layer.AddAnimation (animation, "animateStrokeColor");
[/code]