private CABasicAnimation InitAnimation() { var pulseAnimation = CABasicAnimation.FromKeyPath("transform.scale"); pulseAnimation.Duration = 1; pulseAnimation.RepeatCount = float.MaxValue; pulseAnimation.AutoReverses = true; pulseAnimation.From = NSNumber.FromDouble(0.5); pulseAnimation.To = NSNumber.FromDouble(1); return(pulseAnimation); }
public string Title(int index) { string result = null; if (index < this.Values.Length) { result = numberFormatter.StringFor(NSNumber.FromDouble(this.Values[index])); } return(result); }
public void StartAnim() { CABasicAnimation rotationAnimation = CABasicAnimation.FromKeyPath("transform.rotation"); rotationAnimation.To = NSNumber.FromDouble(Math.PI * 2); rotationAnimation.RepeatCount = int.MaxValue; rotationAnimation.Duration = Constants.loaderAnimTime; LoaderCircle.Hidden = false; LoaderCircle.Layer.AddAnimation(rotationAnimation, "rotationAnimation"); }
CAAnimation CreateAutoPulseAnimation() { CABasicAnimation move = CABasicAnimation.FromKeyPath("position.x"); move.From = NSNumber.FromDouble(-frameAutoPulseWidth); move.To = NSNumber.FromDouble(Frame.Width + frameAutoPulseWidth); move.RepeatCount = float.PositiveInfinity; move.RemovedOnCompletion = false; move.Duration = 4; return(move); }
void SetupLayers() { if (view == null || view.Bounds.Size.IsEmpty) { return; } RemoveLayers(); // replicator layer replicatorLayer = new CAReplicatorLayer(); replicatorLayer.Frame = view.Bounds; replicatorLayer.InstanceCount = finCount; replicatorLayer.PreservesDepth = false; replicatorLayer.InstanceColor = color.CGColor; var angle = (nfloat)(Math.PI * 2.0 / (double)finCount); replicatorLayer.InstanceTransform = CATransform3D.MakeRotation(angle, 0, 0, 1); if (view.Layer == null) { view.Layer = new CALayer(); } view.Layer.AddSublayer(replicatorLayer); view.WantsLayer = true; // instance layer var layerHeight = Math.Min(view.Bounds.Width, view.Bounds.Height) * finSizeMultiplier; var layerWidth = layerHeight * finAspectRatio; var midX = view.Bounds.GetMidX() - layerWidth / 2.0; var instanceLayer = new CALayer(); instanceLayer.Frame = new CGRect(midX, 0, layerWidth, layerHeight); instanceLayer.BackgroundColor = color.CGColor; instanceLayer.CornerRadius = (nfloat)(layerWidth / 2.0); instanceLayer.Bounds = new CGRect(CGPoint.Empty, new CGSize(layerWidth, layerHeight)); replicatorLayer.AddSublayer(instanceLayer); // fade animation var fadeAnimation = CABasicAnimation.FromKeyPath("opacity"); fadeAnimation.From = NSNumber.FromDouble(1.0); fadeAnimation.To = NSNumber.FromDouble(0); fadeAnimation.RepeatCount = float.MaxValue; //set layer fade animation instanceLayer.Opacity = 0; fadeAnimation.Duration = revolutionDuration; instanceLayer.AddAnimation(fadeAnimation, "FadeAnimation"); replicatorLayer.InstanceDelay = revolutionDuration / (double)finCount; }
private void AddAnimation() { CABasicAnimation rotationAnimation = CABasicAnimation.FromKeyPath("transform.rotation"); rotationAnimation.To = NSNumber.FromDouble(Math.PI * 2); // full rotation (in radians) rotationAnimation.RepeatCount = int.MaxValue; // repeat forever rotationAnimation.Duration = 0.5; // Give the added animation a key for referencing it later (to remove, in this case). _imgView.Layer.AddAnimation(rotationAnimation, "rotationAnimation"); }
private void UpdateMaskLayout() { if (_contentLayer == null) { return; } nfloat length = 0.0f; if (ShimmeringDirection == ShimmeringDirection.Down || ShimmeringDirection == ShimmeringDirection.Up) { length = _contentLayer.Bounds.Height; } else { length = _contentLayer.Bounds.Width; } if (0 == length) { return; } nfloat extraDistance = length + ShimmeringSpeed * (nfloat)ShimmeringPauseDuration; nfloat fullShimmerLength = length * 3.0f + extraDistance; nfloat travelDistance = length * 2.0f + extraDistance; nfloat highlightOutsideLength = (1.0f - ShimmeringHighlightLength) / 2.0f; _maskLayer.Locations = new[] { NSNumber.FromDouble(highlightOutsideLength), 0.5, 1.0 - highlightOutsideLength }; nfloat startPoint = (length + extraDistance) / fullShimmerLength; nfloat endPoint = travelDistance / fullShimmerLength; _maskLayer.AnchorPoint = CGPoint.Empty; if (ShimmeringDirection == ShimmeringDirection.Down || ShimmeringDirection == ShimmeringDirection.Up) { _maskLayer.StartPoint = new CGPoint(0.0f, startPoint); _maskLayer.EndPoint = new CGPoint(0.0f, endPoint); _maskLayer.Position = new CGPoint(0.0f, -travelDistance); _maskLayer.Bounds = new CGRect(0.0f, 0.0f, _contentLayer.Bounds.Width, fullShimmerLength); } else { _maskLayer.StartPoint = new CGPoint(startPoint, 0.0f); _maskLayer.EndPoint = new CGPoint(endPoint, 0.0f); _maskLayer.Position = new CGPoint(-travelDistance, 0.0f); _maskLayer.Bounds = new CGRect(0.0f, 0.0f, fullShimmerLength, _contentLayer.Bounds.Height); } }
private void Shrink() { var shrinkAnim = CABasicAnimation.FromKeyPath("bounds.size.width"); shrinkAnim.From = NSNumber.FromDouble(Frame.Width); shrinkAnim.To = NSNumber.FromDouble(Frame.Height); shrinkAnim.Duration = shrinkDuration; shrinkAnim.TimingFunction = shrinkCurve; shrinkAnim.FillMode = CAFillMode.Forwards; shrinkAnim.RemovedOnCompletion = false; Layer.AddAnimation(shrinkAnim, shrinkAnim.KeyPath); }
static NSNumber[] Convert(double [] values) { if (values == null) { return(null); } NSNumber[] array = new NSNumber [values.Length]; for (int i = 0; i < array.Length; i++) { array [i] = NSNumber.FromDouble(values [i]); } return(array); }
private static CABasicAnimation FadeAnimation(CALayer layer, nfloat opacity, double duration) { CABasicAnimation animation = CABasicAnimation.FromKeyPath("opacity"); if (layer.PresentationLayer != null) { animation.From = NSNumber.FromFloat(layer.Opacity); } animation.To = NSNumber.FromDouble(opacity); animation.FillMode = CAFillMode.Both; animation.RemovedOnCompletion = false; animation.Duration = duration; return(animation); }
public override void ViewDidLoad() { base.ViewDidLoad(); var flipView = new JTNumberScrollAnimatedView(); flipView.TextColor = UIColor.Red; flipView.Duration = 1.0f; flipView.MinLength = 4; flipView.Font = UIFont.SystemFontOfSize(20); flipView.Value = NSNumber.FromDouble(259); flipView.Frame = new CGRect(10, 60, this.View.Frame.Width - 20, 100); flipView.StartAnimation(); this.View.AddSubview(flipView); }
void HandleUpdatedHeading(object sender, CLHeadingUpdatedEventArgs e) { double oldRad = -_iPhoneLocationManager.Heading.TrueHeading * Math.PI / 180D; double newRad = -e.NewHeading.TrueHeading * Math.PI / 180D; CABasicAnimation theAnimation; theAnimation = CABasicAnimation.FromKeyPath("transform.rotation"); theAnimation.From = NSNumber.FromDouble(oldRad); theAnimation.To = NSNumber.FromDouble(newRad); theAnimation.Duration = 0.5; compassImage.Layer.AddAnimation(theAnimation, "rotationAnimation"); compassImage.Transform = CGAffineTransform.MakeRotation((float)newRad); }
/// <summary> /// Tracks revenue with product identifier and optional transaction receipt. /// </summary> public void LogRevenue(string productIdentifier, int quantity, double price, byte[] receipt = null) { if (receipt != null) { _native.LogRevenue(productIdentifier, (nint)quantity, NSNumber.FromDouble(price), NSData.FromArray(receipt)); } else { _native.LogRevenue(productIdentifier, (nint)quantity, NSNumber.FromDouble(price)); } }
public void Basic() { var a = new CABasicAnimation { From = NSNumber.FromDouble(pieChart.Angle), To = NSNumber.FromDouble(3 * Math.PI / 2), KeyPath = "angle", Duration = 3, TimingFunction = CAMediaTimingFunction.FromName( CAMediaTimingFunction.EaseInEaseOut), }; pieChart.AddAnimation(a, "AngleAnimation"); pieChart.Angle = 3 * Math.PI / 2; }
private void CreateStateAnimations() { if (_materialButton.ButtonType == MaterialButtonType.Elevated) { _shadowOffsetPressed = CABasicAnimation.FromKeyPath("shadowOffset"); _shadowOffsetPressed.Duration = 0.150; _shadowOffsetPressed.FillMode = CAFillMode.Forwards; _shadowOffsetPressed.RemovedOnCompletion = false; _shadowOffsetPressed.To = FromObject(new CGSize(0, _materialButton.Elevation.PressedElevation)); _shadowRadiusPressed = CABasicAnimation.FromKeyPath("shadowRadius"); _shadowRadiusPressed.Duration = 0.150; _shadowRadiusPressed.FillMode = CAFillMode.Forwards; _shadowRadiusPressed.RemovedOnCompletion = false; _shadowRadiusPressed.To = NSNumber.FromDouble(_materialButton.Elevation.PressedElevation); _shadowOffsetResting = CABasicAnimation.FromKeyPath("shadowOffset"); _shadowOffsetResting.Duration = 0.150; _shadowOffsetResting.FillMode = CAFillMode.Forwards; _shadowOffsetResting.RemovedOnCompletion = false; _shadowOffsetResting.To = FromObject(new CGSize(0, _materialButton.Elevation.RestingElevation)); _shadowRadiusResting = CABasicAnimation.FromKeyPath("shadowRadius"); _shadowRadiusResting.Duration = 0.150; _shadowRadiusResting.FillMode = CAFillMode.Forwards; _shadowRadiusResting.RemovedOnCompletion = false; _shadowRadiusResting.To = NSNumber.FromDouble(_materialButton.Elevation.RestingElevation); } _colorPressed = CABasicAnimation.FromKeyPath("backgroundColor"); _colorPressed.Duration = 0.3; _colorPressed.FillMode = CAFillMode.Forwards; _colorPressed.RemovedOnCompletion = false; _colorPressed.To = FromObject(_pressedBackgroundColor.CGColor); _colorResting = CABasicAnimation.FromKeyPath("backgroundColor"); _colorResting.Duration = 0.3; _colorResting.FillMode = CAFillMode.Forwards; _colorResting.RemovedOnCompletion = false; _colorResting.To = FromObject(_restingBackgroundColor.CGColor); if (_rippleGestureRecognizer == null) { _rippleGestureRecognizer = new UITapGestureRecognizer() { Delegate = new MaterialRippleGestureRecognizerDelegate(_rippleColor.CGColor) }; Control.AddGestureRecognizer(_rippleGestureRecognizer); } }
// Shared initialization code void Initialize() { if (beenHere) { return; } beenHere = true; // Moved from the initWithFrame constructor because it was giving a // not initialized correctly message. RectangleF aRect; ColorRect firstRect; SetBoundsOrigin(new PointF(-108.0f, -108.0f)); rects = new List <ColorRect> (); selectedItem = null; aRect = new RectangleF(30.0f, 45.0f, 57.0f, 118.0f); firstRect = new ColorRect(aRect, NSColor.Blue); rects.Add(firstRect); //------------------------------------------------------------------- NSBundle mainBundle; string path; mainBundle = NSBundle.MainBundle; path = mainBundle.PathForResource("EdgeMarkerLeft", "tiff"); leftImage = new NSImage(path); path = mainBundle.PathForResource("EdgeMarkerRight", "tiff"); rightImage = new NSImage(path); path = mainBundle.PathForResource("EdgeMarkerTop", "tiff"); topImage = new NSImage(path); path = mainBundle.PathForResource("EdgeMarkerBottom", "tiff"); bottomImage = new NSImage(path); upArray = new NSNumber[] { NSNumber.FromDouble(2.0) }; downArray = new NSNumber[] { NSNumber.FromDouble(0.5), NSNumber.FromDouble(0.2) }; // Setup our custom ruler units NSRulerView.RegisterUnit("MyCustomRulerUnits", "mcru", 100.0f, upArray, downArray); }
private void CreateCircleTransformAnimation(CGRect imageFrame) { _circleTransform.Duration = 0.333; // 0.0333 * 10 _circleTransform.Values = new NSObject[8] { NSValue.FromCATransform3D(CATransform3D.MakeScale(0.0F, 0.0F, 1.0F)), // 0/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.5F, 0.5F, 1.0F)), // 1/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.0F, 1.0F, 1.0F)), // 2/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.2F, 1.0F, 1.0F)), // 3/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.3F, 1.3F, 1.0F)), // 4/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.37F, 1.37F, 1.0F)), // 5/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.4F, 1.4F, 1.0F)), // 6/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.4F, 1.4F, 1.0F)) // 10/10 }; _circleTransform.KeyTimes = new NSNumber[8] { NSNumber.FromDouble(0.0), // 0/10 NSNumber.FromDouble(0.1), // 1/10 NSNumber.FromDouble(0.2), // 2/10 NSNumber.FromDouble(0.3), // 3/10 NSNumber.FromDouble(0.4), // 4/10 NSNumber.FromDouble(0.5), // 5/10 NSNumber.FromDouble(0.6), // 6/10 NSNumber.FromDouble(1.0) // 10/10 }; _circleMaskTransform.Duration = 0.333; // 0.0333 * 10 _circleMaskTransform.Values = new NSObject[9] { NSValue.FromCATransform3D(CATransform3D.Identity), // 0/10 NSValue.FromCATransform3D(CATransform3D.Identity), // 2/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(imageFrame.Width * 1.25F, imageFrame.Height * 1.25F, 1.0F)), // 3/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(imageFrame.Width * 2.688F, imageFrame.Height * 2.688F, 1.0F)), // 4/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(imageFrame.Width * 3.923F, imageFrame.Height * 3.923F, 1.0F)), // 5/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(imageFrame.Width * 4.375F, imageFrame.Height * 4.375F, 1.0F)), // 6/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(imageFrame.Width * 4.731F, imageFrame.Height * 4.731F, 1.0F)), // 7/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(imageFrame.Width * 5.0F, imageFrame.Height * 5.0F, 1.0F)), // 9/10 NSValue.FromCATransform3D(CATransform3D.MakeScale(imageFrame.Width * 5.0F, imageFrame.Height * 5.0F, 1.0F)) // 10/10 }; _circleMaskTransform.KeyTimes = new NSNumber[9] { NSNumber.FromDouble(0.0), // 0/10 NSNumber.FromDouble(0.2), // 2/10 NSNumber.FromDouble(0.3), // 3/10 NSNumber.FromDouble(0.4), // 4/10 NSNumber.FromDouble(0.5), // 5/10 NSNumber.FromDouble(0.6), // 6/10 NSNumber.FromDouble(0.7), // 7/10 NSNumber.FromDouble(0.9), // 9/10 NSNumber.FromDouble(1.0) // 10/10 }; }
public void Animation() { Hidden = false; var rotate = CABasicAnimation.FromKeyPath("transform.rotation.z"); rotate.From = NSNumber.FromDouble(0.0); rotate.To = NSNumber.FromDouble(Helpers.fPI * 2); rotate.Duration = 1.0; rotate.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear); rotate.RepeatCount = float.MaxValue; rotate.FillMode = CAFillMode.Forwards; rotate.RemovedOnCompletion = false; AddAnimation(rotate, rotate.KeyPath); StrokeEndAnimation(); }
void SetupLayers() { if (view == null || view.Bounds.Size.IsEmpty) { return; } RemoveLayers(); var width = view.Bounds.Width; var distance = width / 5.0f / (float)shapeCount; // replicator layer replicatorLayer = new CAReplicatorLayer(); replicatorLayer.Frame = new CGRect(0, 0, view.Bounds.Width * 2, view.Bounds.Height); replicatorLayer.PreservesDepth = false; replicatorLayer.InstanceCount = (nint)shapeCount; replicatorLayer.InstanceTransform = CATransform3D.MakeTranslation(distance, 0, 0); replicatorLayer.InstanceDelay = -0.06f; if (view.Layer == null) { view.Layer = new CALayer(); } view.Layer.AddSublayer(replicatorLayer); view.WantsLayer = true; // instance layer var dotSize = view.Bounds.Height; var instanceLayer = new CALayer(); instanceLayer.Frame = new CGRect(-(shapeCount * distance / 2.0f) - dotSize, 0, dotSize, dotSize); instanceLayer.BackgroundColor = shapeColor.CGColor; instanceLayer.Bounds = new CGRect(0, 0, dotSize, dotSize); instanceLayer.CornerRadius = dotSize / 2.0f; replicatorLayer.AddSublayer(instanceLayer); var runAnimation = CABasicAnimation.FromKeyPath("transform.translation.x"); runAnimation.From = NSNumber.FromDouble(-2f * width); runAnimation.To = NSNumber.FromDouble(3f * width); runAnimation.Duration = duration; runAnimation.RepeatCount = float.PositiveInfinity; runAnimation.TimingFunction = CAMediaTimingFunction.FromControlPoints(0, 1.0f - easeFactor, 1, easeFactor); instanceLayer.AddAnimation(runAnimation, "RunAnimation"); }
partial void repositionImages(NSObject sender) { foreach (CALayer layer in View.Layer.Sublayers) { if (layer == textContainer || layer == repositionButton.Layer || layer == durationTextField.Layer) { continue; } CGRect imageBounds = layer.Bounds; nfloat X, Y = 0; if (windowIsResizing) { X = layer.Position.X + ((layer.Position.X - imageBounds.Size.Width / 2) / (lastWindowSize.Width - imageBounds.Size.Width) * (Window.Frame.Width - lastWindowSize.Width)); Y = layer.Position.Y + ((layer.Position.Y - imageBounds.Size.Height / 2) / (lastWindowSize.Height - imageBounds.Size.Height) * (Window.Frame.Height - lastWindowSize.Height)); } else { X = (nfloat)random.Next((int)Math.Floor(imageBounds.Width / 2), (int)Math.Floor(layer.SuperLayer.Bounds.GetMaxX() - imageBounds.Width / 2)); Y = (nfloat)random.Next((int)Math.Floor(imageBounds.Height / 2), (int)Math.Floor(layer.SuperLayer.Bounds.GetMaxY() - imageBounds.Height / 2)); } CGPoint newPoint = new CGPoint(X, Y); CAMediaTimingFunction tr = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear); CAMediaTimingFunction tf = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); CABasicAnimation posAnim = CABasicAnimation.FromKeyPath("position"); posAnim.From = NSValue.FromCGPoint(layer.Position); posAnim.Duration = windowIsResizing ? 0 : durationTextField.FloatValue; posAnim.TimingFunction = windowIsResizing ? tr : tf; CABasicAnimation zPosAnim = CABasicAnimation.FromKeyPath("zPosition"); zPosAnim.From = NSNumber.FromDouble(layer.ZPosition); zPosAnim.Duration = durationTextField.FloatValue; zPosAnim.TimingFunction = tf; layer.Actions = NSDictionary.FromObjectsAndKeys(new NSObject[] { posAnim, zPosAnim }, new NSObject[] { new NSString("position"), new NSString("zPosition") }); CATransaction.Begin(); layer.Position = newPoint; if (!windowIsResizing) { layer.ZPosition = random.Next(-100, 99); } CATransaction.Commit(); } }
void SetupLayers() { if (view == null || view.Bounds.Size.IsEmpty) { return; } RemoveLayers(); var shear = new CGAffineTransform(1.0f, 0, shearFactor, 1.0f, 0.0f, 0.0f); // replicator layer replicatorLayer = new CAReplicatorLayer(); replicatorLayer.BackgroundColor = trackColor.CGColor; replicatorLayer.Frame = view.Bounds; replicatorLayer.InstanceCount = (nint)(1 + view.Bounds.Width / hatchSize); replicatorLayer.PreservesDepth = false; replicatorLayer.InstanceTransform = CATransform3D.MakeTranslation((nfloat)(hatchSize * 2.0), 0, 0); if (view.Layer == null) { view.Layer = new CALayer(); } view.Layer.AddSublayer(replicatorLayer); view.WantsLayer = true; // instance layer var layerHeight = view.Bounds.Height; var layerWidth = hatchSize; var instanceLayer = new CALayer(); instanceLayer.Frame = new CGRect(0, 0, layerWidth, layerHeight); instanceLayer.BackgroundColor = hatchColor.CGColor; instanceLayer.Bounds = new CGRect(0, 0, layerWidth, layerHeight); instanceLayer.Transform = CATransform3D.MakeFromAffine(shear); replicatorLayer.AddSublayer(instanceLayer); var runAnimation = CABasicAnimation.FromKeyPath("transform.translation.x"); runAnimation.From = NSNumber.FromDouble(-hatchSize); runAnimation.To = NSNumber.FromDouble(hatchSize); runAnimation.Duration = 0.5; runAnimation.RepeatCount = float.PositiveInfinity; instanceLayer.AddAnimation(runAnimation, "RunAnimation"); }
void DidTapMyLocation(object sender, EventArgs e) { var location = mapView.MyLocation; if (location == null || !location.Coordinate.IsValid()) { return; } // Access the GMSMapLayer directly to modify the following properties with a // specified timing function and duration. var curve = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); CABasicAnimation animation; animation = CABasicAnimation.FromKeyPath(Constants.LayerCameraLatitudeKey); animation.Duration = 2.0; animation.TimingFunction = curve; animation.To = NSNumber.FromDouble(location.Coordinate.Latitude); mapView.Layer.AddAnimation(animation, Constants.LayerCameraLatitudeKey); animation = CABasicAnimation.FromKeyPath(Constants.LayerCameraLongitudeKey); animation.Duration = 2.0; animation.TimingFunction = curve; animation.To = NSNumber.FromDouble(location.Coordinate.Longitude); mapView.Layer.AddAnimation(animation, Constants.LayerCameraLongitudeKey); animation = CABasicAnimation.FromKeyPath(Constants.LayerCameraBearingKey); animation.Duration = 2.0; animation.TimingFunction = curve; animation.To = NSNumber.FromDouble(0.0); mapView.Layer.AddAnimation(animation, Constants.LayerCameraBearingKey); // Fly out to the minimum zoom and then zoom back to the current zoom! var zoom = mapView.Camera.Zoom; var keyValues = new [] { NSNumber.FromFloat(zoom), NSNumber.FromFloat(-100), NSNumber.FromFloat(zoom) }; var keyFrameAnimation = (CAKeyFrameAnimation)CAKeyFrameAnimation.FromKeyPath(Constants.LayerCameraZoomLevelKey); keyFrameAnimation.Duration = 2.0; keyFrameAnimation.Values = keyValues; mapView.Layer.AddAnimation(keyFrameAnimation, Constants.LayerCameraZoomLevelKey); }
/// <summary> /// Generates an array of interpolated keyframe values by easing equation. For use with CAKeyframeAnimation /// </summary> public static NSObject[] CreateKeyValues(float fromValue, float toValue, EasingFormula easingFormula, int steps = 100) { NSObject[] values = new NSObject[steps + 1]; double value = 0; float curTime = 0; for (int t = 0; t < steps; t++) { curTime = (float)t / (float)steps; var easingFactor = easingFormula(curTime, 0, 1); value = (toValue - fromValue) * easingFactor + fromValue; values[t] = NSNumber.FromDouble(value); } values[steps] = NSNumber.FromFloat(toValue); return(values); }
public void StrokeStartAnimation() { var startPoint = CABasicAnimation.FromKeyPath("strokeStart"); startPoint.From = NSNumber.FromDouble(0.0); startPoint.To = NSNumber.FromDouble(1.0); startPoint.Duration = 0.8; startPoint.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut); startPoint.RepeatCount = 1; startPoint.AnimationStopped += delegate { if (!Hidden) { StrokeEndAnimation(); } }; AddAnimation(startPoint, startPoint.KeyPath); }
public override bool FinishedLaunching(UIApplication app, NSDictionary options) { // create a new window instance based on the screen size window = new UIWindow(UIScreen.MainScreen.Bounds); vc = new UIViewControllerRotation(); vc.View.BackgroundColor = UIColor.Black; testLayer = new CircleLayer(); testLayer.Color = UIColor.Green.CGColor; testLayer.Thickness = 19f; testLayer.Radius = 60f; testLayer.Frame = vc.View.Layer.Bounds; vc.View.Layer.AddSublayer(testLayer); testLayer.SetNeedsDisplay(); radiusAnimation = CABasicAnimation.FromKeyPath("radius"); radiusAnimation.Duration = 3; radiusAnimation.To = NSNumber.FromDouble(120); radiusAnimation.RepeatCount = 1000; thicknessAnimation = CABasicAnimation.FromKeyPath("thickness"); thicknessAnimation.Duration = 2; thicknessAnimation.From = NSNumber.FromDouble(5); thicknessAnimation.To = NSNumber.FromDouble(38); thicknessAnimation.RepeatCount = 1000; colorAnimation = CABasicAnimation.FromKeyPath("circleColor"); colorAnimation.Duration = 4; colorAnimation.To = new NSObject(UIColor.Blue.CGColor.Handle); colorAnimation.RepeatCount = 1000; testLayer.AddAnimation(radiusAnimation, "radiusAnimation"); testLayer.AddAnimation(thicknessAnimation, "thicknessAnimation"); testLayer.AddAnimation(colorAnimation, "colorAnimation"); window.RootViewController = vc; // make the window visible window.MakeKeyAndVisible(); return(true); }
public void SpinTimeLabel() { // Create a basic animation CABasicAnimation spin = CABasicAnimation.FromKeyPath("transform.rotation"); spin.AnimationStopped += AnimationStopped; // from value is implied spin.To = NSNumber.FromDouble(Math.PI * 2); spin.Duration = 0.6; //Set the timing function CAMediaTimingFunction tf = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); spin.TimingFunction = tf; // Kick off the animation by adding it to the layer lblTime.Layer.AddAnimation(spin, "spinAnimation"); }
void AttachFadeoutAnimation(CALayer progress, CAAnimation animation, Func <bool> fadeoutVerifier) { animation.AnimationStopped += (sender, e) => { if (!fadeoutVerifier()) { return; } if (!e.Finished) { return; } CABasicAnimation fadeout = CABasicAnimation.FromKeyPath("opacity"); fadeout.From = NSNumber.FromDouble(1); fadeout.To = NSNumber.FromDouble(0); fadeout.Duration = 0.5; fadeout.FillMode = CAFillMode.Forwards; fadeout.RemovedOnCompletion = false; fadeout.AnimationStopped += (sender2, e2) => { if (!e2.Finished) { return; } // Reset all the properties. inProgress = false; progress.Hidden = true; progress.Opacity = 1; progress.Frame = new CGRect(0, barY, 0, barHeight); progress.RemoveAllAnimations(); SetProgressValue(0.0); progress.Hidden = false; }; progress.Name = ProgressLayerFadingId; progress.AddAnimation(fadeout, "opacity"); }; progress.AddAnimation(animation, growthAnimationKey); }
private void CreateImageTransformAnimation() { _imageTransform.Duration = 1.0; //0.0333 * 30 _imageTransform.Values = new NSObject[17] { NSValue.FromCATransform3D(CATransform3D.MakeScale(0.0F, 0.0F, 1.0F)), // 0/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.0F, 0.0F, 1.0F)), // 3/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.2F, 1.2F, 1.0F)), // 9/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.25F, 1.25F, 1.0F)), // 10/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.2F, 1.2F, 1.0F)), // 11/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.9F, 0.9F, 1.0F)), // 14/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.875F, 0.875F, 1.0F)), // 15/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.875F, 0.875F, 1.0F)), // 16/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.9F, 0.9F, 1.0F)), // 17/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.013F, 1.013F, 1.0F)), // 20/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.025F, 1.025F, 1.0F)), // 21/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(1.013F, 1.013F, 1.0F)), // 22/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.96F, 0.96F, 1.0F)), // 25/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.95F, 0.95F, 1.0F)), // 26/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.96F, 0.96F, 1.0F)), // 27/30 NSValue.FromCATransform3D(CATransform3D.MakeScale(0.99F, 0.99F, 1.0F)), // 29/30 NSValue.FromCATransform3D(CATransform3D.Identity) // 30/30 }; _imageTransform.KeyTimes = new NSNumber[17] { NSNumber.FromDouble(0.0), // 0/30 NSNumber.FromDouble(0.1), // 3/30 NSNumber.FromDouble(0.3), // 9/30 NSNumber.FromDouble(0.333), // 10/30 NSNumber.FromDouble(0.367), // 11/30 NSNumber.FromDouble(0.467), // 14/30 NSNumber.FromDouble(0.5), // 15/30 NSNumber.FromDouble(0.533), // 16/30 NSNumber.FromDouble(0.567), // 17/30 NSNumber.FromDouble(0.667), // 20/30 NSNumber.FromDouble(0.7), // 21/30 NSNumber.FromDouble(0.733), // 22/30 NSNumber.FromDouble(0.833), // 25/30 NSNumber.FromDouble(0.867), // 26/30 NSNumber.FromDouble(0.9), // 27/30 NSNumber.FromDouble(0.967), // 29/30 NSNumber.FromDouble(1.0) // 30/30 }; }
public ComparisonView(RectangleF frame) : base(frame) { BackgroundColor = UIColor.White; animationImagesImageView = new UIImageView() { Frame = new RectangleF(PointF.Empty, new SizeF(40f, 40f)), AutoresizingMask = UIViewAutoresizing.FlexibleMargins, AnimationImages = new UIImage[] { UIImage.FromBundle("loading_1"), UIImage.FromBundle("loading_2"), UIImage.FromBundle("loading_3"), UIImage.FromBundle("loading_4"), }, }; animationImagesImageView.AnimationRepeatCount = 0; animationImagesImageView.AnimationDuration = 0.5; animationImagesImageView.StartAnimating(); Add(animationImagesImageView); basicAnimationImageView = new UIImageView(UIImage.FromBundle("loading_1")) { Frame = new RectangleF(PointF.Empty, new SizeF(40f, 40f)), AutoresizingMask = UIViewAutoresizing.FlexibleMargins, Hidden = true, }; rotationAnimation = CABasicAnimation.FromKeyPath("transform.rotation"); rotationAnimation.To = NSNumber.FromDouble(Math.PI * 2); // full rotation (in radians) rotationAnimation.RepeatCount = int.MaxValue; // repeat forever rotationAnimation.Duration = 0.5; // Give the added animation a key for referencing it later (e.g., to remove it when it is replaced). basicAnimationImageView.Layer.AddAnimation(rotationAnimation, "rotationAnimation"); Add(basicAnimationImageView); // Button overlay to switch between the two versions. switchButton = new UIButton(); switchButton.TouchUpInside += (sender, e) => { animationImagesImageView.Hidden = !animationImagesImageView.Hidden; basicAnimationImageView.Hidden = !basicAnimationImageView.Hidden; }; Add(switchButton); }
void MoveCardBetweenPhones(UIView card, double duration, CGPoint destination) { if (Cancelled) { return; } var rotate = CABasicAnimation.FromKeyPath("transform.rotation"); rotate.From = NSObject.FromObject(0); rotate.To = NSObject.FromObject(Math.PI * 2); var liftAndSlideRight = CABasicAnimation.FromKeyPath("position"); liftAndSlideRight.To = NSValue.FromCGPoint(destination); liftAndSlideRight.RemovedOnCompletion = false; liftAndSlideRight.FillMode = CAFillMode.Forwards; var grow = CABasicAnimation.FromKeyPath("transform.scale"); grow.To = NSNumber.FromDouble(7.5); grow.Duration = animationDuration / 2; grow.RemovedOnCompletion = false; grow.FillMode = CAFillMode.Forwards; var shrink = CABasicAnimation.FromKeyPath("transform.scale"); shrink.To = NSNumber.FromDouble(3.0); shrink.BeginTime = animationDuration / 2; shrink.RemovedOnCompletion = false; shrink.FillMode = CAFillMode.Forwards; var animationGroup = CAAnimationGroup.CreateAnimation(); animationGroup.Animations = new CAAnimation[] { rotate, liftAndSlideRight, grow, shrink }; animationGroup.Duration = duration; animationGroup.FillMode = CAFillMode.Forwards; animationGroup.RemovedOnCompletion = false; rotate.RepeatCount = 0; card.Layer.AddAnimation(animationGroup, "MoveCardBetweenPhones"); }