public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); TKChartVisualPoint[] points = chart.VisualPointsForSeries(chart.Series [0]); originalValues = new List <CGPoint> (); foreach (TKChartVisualPoint p in points) { originalValues.Add(p.CGPoint); } TKChartVisualPoint point = points[4]; UISnapBehavior snap = new UISnapBehavior(point, point.Center); snap.Damping = 0.2f; UIPushBehavior push = new UIPushBehavior(new IUIDynamicItem[] { point }, UIPushBehaviorMode.Instantaneous); push.PushDirection = new CGVector(0.0f, -1.0f); push.Magnitude = 0.003f; UIDynamicAnimator animator = new UIDynamicAnimator(); animator.AddBehavior(snap); animator.AddBehavior(push); point.Animator = animator; }
public void applyGravity() { if (firstTime) { firstTime = false; TKChartVisualPoint[] points1 = chart.VisualPointsForSeries(chart.Series [0]); originalValues = new List <CGPoint> (); foreach (TKChartVisualPoint p in points1) { originalValues.Add(p.CGPoint); } TKChartVisualPoint point1 = points1 [4]; originalLocation = point1.Center; } // >> chart-anim-gravity-cs animator = new UIDynamicAnimator(chart.PlotView); TKChartVisualPoint[] points = chart.VisualPointsForSeries(chart.Series [0]); TKChartVisualPoint point = points [4]; for (int i = 0; i < originalValues.Count; i++) { TKChartVisualPoint pt = points [i]; if (pt.Animator != null) { pt.Animator.RemoveAllBehaviors(); pt.Animator = null; } pt.Center = ((CGPoint)originalValues[i]); } point.Center = new CGPoint(originalLocation.X, 0); UICollisionBehavior collision = new UICollisionBehavior(points); collision.TranslatesReferenceBoundsIntoBoundary = true; UIGravityBehavior gravity = new UIGravityBehavior(points); gravity.GravityDirection = new CGVector(0.0f, 2.0f); UIDynamicItemBehavior dynamic = new UIDynamicItemBehavior(points); dynamic.Elasticity = 0.5f; animator.AddBehavior(dynamic); animator.AddBehavior(gravity); animator.AddBehavior(collision); // << chart-anim-gravity-cs }