void FnPerformTableTransition() { leftmenu.Hidden = !leftmenu.Hidden; var transition = new CATransition(); transition.Duration = 0.25f; transition.Type = CAAnimation.TransitionPush; if (leftmenu.Hidden) { transition.TimingFunction = CAMediaTimingFunction.FromName(new Foundation.NSString("easeOut")); transition.Subtype = CAAnimation.TransitionFromRight; } else { transition.TimingFunction = CAMediaTimingFunction.FromName(new Foundation.NSString("easeIn")); transition.Subtype = CAAnimation.TransitionFromLeft; } leftmenu.Layer.AddAnimation(transition, null); }
private void SetAni(float from, float to, double duration = 0.3) { this.Layer.RemoveAnimation("radius"); using (var ani = CABasicAnimation.FromKeyPath("radius")) { ani.Duration = duration; ani.From = NSNumber.FromNFloat(from); ani.To = NSNumber.FromFloat(to); //ani.SetTo(NSNumber.FromFloat(to)); ani.AutoReverses = false; ani.RepeatCount = 1; //http://www.jianshu.com/p/02c341c748f9 ani.RemovedOnCompletion = false; ani.FillMode = CAFillMode.Backwards; ani.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); this.Layer.AddAnimation(ani, "radius"); } }
double showItem(UIImageView img) { double Alltime = 0.0; CATransition transition = new CATransition(); transition.Duration = 0.5f; transition.TimingFunction = CAMediaTimingFunction.FromName( CAMediaTimingFunction.EaseInEaseOut); transition.Type = CATransition.TransitionFade; img.Highlighted = false; img.Layer.AddAnimation(transition, null); img.Highlighted = true; img.Alpha = 1.0f; nint key = img.Tag; List <Pair> items = myDictionary[key]; if (items.Count > 0) { float localTime = 0.25f; //NSNumber * value2 = [[NSNumber alloc] initWithInt:0 ]; //NSNumber * value3 = [[NSNumber alloc] initWithFloat:localTime ]; NSTimer timer = NSTimer.CreateScheduledTimer(localTime, (t) => { showTextItem(t, items, 0); }); //NSTimer timer = [NSTimer scheduledTimerWithTimeInterval:[value3 floatValue] target:self selector:@selector(showTextItem:) userInfo:[NSDictionary dictionaryWithObjectsAndKeys:items, @"value1", value2, @"value2", value3, @"value3", nil] repeats:NO]; //[_timerTextColecction addObject:timer]; } for (int i = 0; i < items.Count; i++) { Pair pair = items[i]; UIView item = pair.view; Alltime = (item.Frame.Size.Width * item.Frame.Size.Width) * TEXT_TIME + 0.70; } return(Alltime); }
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"); }
public static void ShakeVertically(this UIView view) { CAKeyFrameAnimation animation = CAKeyFrameAnimation.FromKeyPath("transform.translation.y"); animation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear); animation.Duration = 0.5; animation.Values = new NSObject[] { NSNumber.FromFloat(-12), NSNumber.FromFloat(12), NSNumber.FromFloat(-8), NSNumber.FromFloat(8), NSNumber.FromFloat(-4), NSNumber.FromFloat(4), NSNumber.FromFloat(0) }; view.Layer.AddAnimation(animation, "shake"); }
public void EaseOut() { using (CAMediaTimingFunction mtf1 = new CAMediaTimingFunction(0f, 0f, 0.58f, 1f)) #if !XAMCORE_2_0 using (CAMediaTimingFunction mtf2 = CAMediaTimingFunction.FromName((string)CAMediaTimingFunction.EaseOut)) #endif using (CAMediaTimingFunction mtf3 = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut)) { #if !XAMCORE_2_0 Assert.That(mtf2.GetControlPoint(0), Is.EqualTo(mtf1.GetControlPoint(0)), "0a"); Assert.That(mtf2.GetControlPoint(1), Is.EqualTo(mtf1.GetControlPoint(1)), "1a"); Assert.That(mtf2.GetControlPoint(2), Is.EqualTo(mtf1.GetControlPoint(2)), "2a"); Assert.That(mtf2.GetControlPoint(3), Is.EqualTo(mtf1.GetControlPoint(3)), "3a"); #endif Assert.That(mtf3.GetControlPoint(0), Is.EqualTo(mtf1.GetControlPoint(0)), "0b"); Assert.That(mtf3.GetControlPoint(1), Is.EqualTo(mtf1.GetControlPoint(1)), "1b"); Assert.That(mtf3.GetControlPoint(2), Is.EqualTo(mtf1.GetControlPoint(2)), "2b"); Assert.That(mtf3.GetControlPoint(3), Is.EqualTo(mtf1.GetControlPoint(3)), "3b"); } }
public void CreateBarAnimationForKeyPath(CALayer layer, string key, float toValue) { var _fromValue = layer.ValueForKeyPath(new NSString(key)); var _toValue = new NSNumber(toValue); var _key = new NSString(key); var barAnimation = CABasicAnimation.FromKeyPath(key); var currentValue = _fromValue; if (layer.PresentationLayer != null) { currentValue = layer.PresentationLayer.ValueForKeyPath(_key); } barAnimation.From = currentValue; barAnimation.To = _toValue; barAnimation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Default); layer.AddAnimation(barAnimation, key); layer.SetValueForKeyPath(_toValue, _key); }
private static CAMediaTimingFunction GetDefaultTimingFunction(EasingMode?easingMode = null) { if (easingMode.HasValue) { switch (easingMode.Value) { case EasingMode.EaseIn: return(CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseIn)); case EasingMode.EaseOut: return(CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut)); case EasingMode.EaseInOut: return(CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut)); } } return(CAMediaTimingFunction.FromName(CAMediaTimingFunction.Default)); }
public static void ShakeVertically(this UIView view, float strength = 12.0f) { CAKeyFrameAnimation animation = CAKeyFrameAnimation.FromKeyPath("transform.translation.y"); animation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear); animation.Duration = 0.5; animation.Values = new NSObject[] { NSNumber.FromFloat(-strength), NSNumber.FromFloat(strength), NSNumber.FromFloat(-strength * 0.66f), NSNumber.FromFloat(strength * 0.66f), NSNumber.FromFloat(-strength * 0.33f), NSNumber.FromFloat(strength * 0.33f), NSNumber.FromFloat(0) }; view.Layer.AddAnimation(animation, "shake"); }
private CAAnimation CreateStrokeAnimation(string keyPath, double beginTime) { CABasicAnimation animation = new CABasicAnimation(); animation.KeyPath = keyPath; animation.BeginTime = beginTime; animation.Duration = Constants.StrokeAnimationDuration; animation.From = NSObject.FromObject(0); animation.To = NSObject.FromObject(1); animation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); CAAnimationGroup group = new CAAnimationGroup(); group.Duration = Constants.TotalStrokeAnimationDuration; group.RepeatCount = float.MaxValue; group.Animations = new[] { animation }; return(group); }
public override void ViewDidLoad() { base.ViewDidLoad(); heartsEmitter.Position = new CGPoint(BtnSpreadLove.Frame.X + BtnSpreadLove.Frame.Size.Width / 2.0f, BtnSpreadLove.Frame.Y + BtnSpreadLove.Frame.Size.Height / 2.0f); heartsEmitter.Size = BtnSpreadLove.Bounds.Size; heartsEmitter.Mode = "kCAEmitterLayerVolume"; heartsEmitter.Shape = "kCAEmitterLayerRectangle"; heartsEmitter.RenderMode = "kCAEmitterLayerAdditive"; CAEmitterCell heart = new CAEmitterCell(); heart.Name = "heart"; heart.EmissionLongitude = (nfloat)Math.PI / 2.0f; heart.EmissionRange = 0.55f * (nfloat)Math.PI; heart.BirthRate = 0.0f; heart.LifeTime = 10.0f; heart.Velocity = -120; heart.VelocityRange = 60; heart.AccelerationY = 20; heart.Contents = UIImage.FromBundle("DazHeart").CGImage; heart.Color = UIColor.FromRGBA(0.5f, 0.0f, 0.5f, 0.5f).CGColor; heart.RedRange = 0.3f; heart.BlueRange = 0.3f; heart.AlphaSpeed = -0.5f / heart.LifeTime; heart.Scale = 0.15f; heart.ScaleSpeed = 0.5f; heart.SpinRange = 2.0f * (nfloat)Math.PI; heartsEmitter.Cells = new CAEmitterCell[] { heart }; this.View.Layer.AddSublayer(heartsEmitter); BtnSpreadLove.TouchUpInside += (sender, e) => { var heartsBurst = CABasicAnimation.FromKeyPath("emitterCells.heart.birthRate"); heartsBurst.From = NSNumber.FromFloat(10.0f); heartsBurst.To = NSNumber.FromFloat(0.0f); heartsBurst.Duration = 15.0f; heartsBurst.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear); heartsEmitter.AddAnimation(heartsBurst, "heartsBurst"); }; }
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); }
public void StrokeEndAnimation() { var endPoint = CABasicAnimation.FromKeyPath("strokeEnd"); endPoint.From = NSNumber.FromDouble(0.0); endPoint.To = NSNumber.FromDouble(1.0); endPoint.Duration = 0.8; endPoint.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut); endPoint.RepeatCount = 1; endPoint.FillMode = CAFillMode.Forwards; endPoint.RemovedOnCompletion = false; endPoint.AnimationStopped += delegate { if (!Hidden) { StrokeStartAnimation(); } }; AddAnimation(endPoint, endPoint.KeyPath); }
public static UIView Pulse(this UIView view, float max) { var transformAnimation = CAKeyFrameAnimation.GetFromKeyPath("transform"); transformAnimation.CalculationMode = CAAnimation.AnimationPaced; transformAnimation.FillMode = CAFillMode.Forwards; transformAnimation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut); // pathAnimation.RemovedOnCompletion = false; transformAnimation.Duration = .2; var transform = CATransform3D.MakeScale(max, max, 1); transformAnimation.Values = new [] { NSValue.FromCATransform3D(CATransform3D.Identity), NSValue.FromCATransform3D(transform), NSValue.FromCATransform3D(CATransform3D.Identity), }; view.Layer.AddAnimation(transformAnimation, "pulse"); return(view); }
void PerformTableTransition() { menuTableView.Hidden = !menuTableView.Hidden; //transition effect var transition = new CATransition(); transition.Duration = 0.25f; transition.Type = CAAnimation.TransitionPush; if (menuTableView.Hidden) { transition.TimingFunction = CAMediaTimingFunction.FromName(new NSString("easeOut")); transition.Subtype = CAAnimation.TransitionFromRight; } else { transition.TimingFunction = CAMediaTimingFunction.FromName(new NSString("easeIn")); transition.Subtype = CAAnimation.TransitionFromLeft; } menuTableView.Layer.AddAnimation(transition, null); }
public void dismissVC(bool animation = true) { if (!animation) { CATransition transition = new CATransition(); transition.Duration = 0.3; transition.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); transition.Type = CATransition.TransitionPush; transition.Subtype = CATransition.TransitionFromRight; this.View.Window.Layer.AddAnimation(transition, null); } if (this.NavigationController != null) { this.NavigationController.PopViewController(animation); } else { this.DismissViewController(animation, null); } }
/** Returns a CABasicAnimation which animates the opacity. * @param reverse The direction of the animation. Set to YES if the animation should go from opacity 0 to 1, or NO for the opposite. * @return Returns the CABasicAnimation object. */ public CABasicAnimation OpacityAnimationReverse(bool reverse) { CABasicAnimation animation = CABasicAnimation.FromKeyPath("opacity"); if (reverse) { animation.From = new NSNumber(1); animation.To = new NSNumber(0); } else { animation.From = new NSNumber(0); animation.To = new NSNumber(1); } animation.Duration = AnimationDuration; animation.RemovedOnCompletion = false; animation.FillMode = CAFillMode.Forwards; animation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); return(animation); }
private CAKeyFrameAnimation PlusKeyFrame(bool closed) { var paths = closed ? new[] { PathPlus(CoreGraphicsExtensions.PI * 0f), PathPlus(CoreGraphicsExtensions.PI * 0.125f), PathPlus(CoreGraphicsExtensions.PI * 0.25f), } : new[] { PathPlus(CoreGraphicsExtensions.PI * 0.25f), PathPlus(CoreGraphicsExtensions.PI * 0.125f), PathPlus(CoreGraphicsExtensions.PI * 0f), }; var anim = CAKeyFrameAnimation.GetFromKeyPath("path"); anim.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); anim.SetValues(paths.Select(x => x.CGPath).ToArray()); anim.Duration = 0.5f; anim.RemovedOnCompletion = true; anim.FillMode = CAFillMode.Forwards; return(anim); }
public void UpdateItemsCount(int count) { ItemsCount = count; var pathAnimation = CAKeyFrameAnimation.GetFromKeyPath("transform"); pathAnimation.CalculationMode = CAAnimation.AnimationPaced; pathAnimation.FillMode = CAFillMode.Forwards; pathAnimation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut); // pathAnimation.RemovedOnCompletion = false; pathAnimation.Duration = .2; var transform = CATransform3D.MakeScale(2f, 2f, 1); pathAnimation.Values = new [] { NSValue.FromCATransform3D(CATransform3D.Identity), NSValue.FromCATransform3D(transform), NSValue.FromCATransform3D(CATransform3D.Identity), }; badge.Layer.AddAnimation(pathAnimation, "pulse"); }
private void UpdateRecordUI() { if (DurationLabel != null) { if (IsRecording) { DurationLabel.FadeIn(); } else { DurationLabel.FadeOut(0.5); } } if (BGView != null) { CABasicAnimation borderCol = CABasicAnimation.FromKeyPath("borderColor"); borderCol.SetFrom((IsRecording) ? UIColor.White.CGColor : UIColor.Red.CGColor); borderCol.SetTo((IsRecording) ? UIColor.Red.CGColor : UIColor.White.CGColor); borderCol.FillMode = CAFillMode.Forwards; borderCol.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); borderCol.Duration = 1; BGView.Layer.BorderColor = (IsRecording) ? UIColor.Red.CGColor : UIColor.White.CGColor; BGView.Layer.AddAnimation(borderCol, "color"); } if (RecordButton != null) { RecordButton.FadeOut(0.25, 0, () => { if (RecordButton != null) { string fileName = (IsRecording) ? "ic_stop" : "ic_record"; RecordButton.SetImage(UIImage.FromBundle(fileName), UIControlState.Normal); RecordButton.TintColor = (IsRecording) ? UIColor.Black : UIColor.Red; RecordButton.FadeIn(0.25); } }); } }
public void CheckIfObjectShouldMoveOntoPlane(ARPlaneAnchor anchor, SCNNode planeAnchorNode) { foreach (var vo in VirtualObjects) { // Get the object's position in the plane's coordinate system. var objectPos = planeAnchorNode.ConvertPositionToNode(vo.Position, vo.ParentNode); if (Math.Abs(objectPos.Y) < float.Epsilon) { return; // The object is already on the plane - nothing to do here. } // Add 10% tolerance to the corners of the plane. var tolerance = 0.1f; var minX = anchor.Center.X - anchor.Extent.X / 2f - anchor.Extent.X * tolerance; var maxX = anchor.Center.X + anchor.Extent.X / 2f + anchor.Extent.X * tolerance; var minZ = anchor.Center.Z - anchor.Extent.Z / 2f - anchor.Extent.Z * tolerance; var maxZ = anchor.Center.Z + anchor.Extent.Z / 2f + anchor.Extent.Z * tolerance; if (objectPos.X < minX || objectPos.X > maxX || objectPos.Z < minZ || objectPos.Z > maxZ) { return; } // Drop the object onto the plane if it is near it. var verticalAllowance = 0.05f; var epsilon = 0.001; // Do not bother updating if the difference is less than a mm. var distanceToPlane = Math.Abs(objectPos.Y); if (distanceToPlane > epsilon && distanceToPlane < verticalAllowance) { Delegate.DidMoveObjectOntoNearbyPlane(this, vo); SCNTransaction.Begin(); SCNTransaction.AnimationDuration = distanceToPlane * 500; // Move 2mm per second SCNTransaction.AnimationTimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); vo.Position = new SCNVector3(vo.Position.X, anchor.Transform.M32, vo.Position.Z); SCNTransaction.Commit(); } } }
async public void StartAnimationLoop(AnimationDirection direction, string designType, int minSize, int maxSize, nfloat duration) { if (!String.IsNullOrEmpty(designType) && designType.Equals(Strings.DesignTypes.design_type_none, StringComparison.InvariantCultureIgnoreCase)) { EndAnimation(AnimationEnding.collapse, 0); return; } Animating = true; Random random = new Random(); while (Animating) { nfloat size = random.Next(minSize, maxSize); UIView view = new UIView(new CGRect(-size, -size / 2 + random.Next((int)Frame.Size.Height), size, size)); view.BackgroundColor = GetColor(random, designType); view.Layer.CornerRadius = view.Frame.Size.Width / 2; view.Layer.MasksToBounds = true; CABasicAnimation anim = CABasicAnimation.FromKeyPath("position.x"); if (direction == AnimationDirection.right) { anim.From = NSObject.FromObject(Frame.Size.Width + view.Frame.Size.Width); anim.To = NSObject.FromObject(-Frame.Size.Width); } else if (direction == AnimationDirection.left) { anim.From = NSObject.FromObject(-view.Frame.Size.Width); anim.To = NSObject.FromObject(Frame.Size.Width + view.Frame.Size.Width); } anim.Duration = duration; anim.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseIn); view.Layer.AddAnimation(anim, "anim"); InsertSubview(view, 0); await System.Threading.Tasks.Task.Delay(TimeSpan.FromMilliseconds(100)); } }
public void CreateArcAnimationForKey(string key, double fromValue, double toValue, CAAnimationDelegate @delegate) { var _fromValue = new NSNumber(fromValue); var _toValue = new NSNumber(toValue); var _key = new NSString(key); var arcAnimation = CABasicAnimation.FromKeyPath(key); var currentAngle = _fromValue; if (PresentationLayer != null) { currentAngle = (NSNumber)PresentationLayer.ValueForKey(_key); } arcAnimation.Duration = 1.0f; arcAnimation.From = currentAngle; arcAnimation.To = _toValue; arcAnimation.Delegate = @delegate; arcAnimation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Default); AddAnimation(arcAnimation, key); SetValueForKey(_toValue, _key); }
private CAKeyFrameAnimation ScaleAnimation(string keyPath) { var scaleAnimation = CAKeyFrameAnimation.FromKeyPath(keyPath); var easeOut = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut); var easeInOut = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); var liner = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear); var fs = FocusSquareSize; var ts = FocusSquareSize * ScaleForClosedSquare; var values = new NSNumber[] { fs, fs * 1.15f, fs * 1.15f, ts * 0.97f, ts }; var keyTimes = new NSNumber[] { 0.00f, 0.25f, 0.50f, 0.75f, 1.00f }; var timingFunctions = new CAMediaTimingFunction[] { easeOut, liner, easeOut, easeInOut }; scaleAnimation.Values = values; scaleAnimation.KeyTimes = keyTimes; scaleAnimation.TimingFunctions = timingFunctions; scaleAnimation.Duration = AnimationDuration; return(scaleAnimation); }
public void CreateBarAnimationForHeight(CALayer layer, float toValue, CAAnimationDelegate @delegate) { const string key = "bounds.size.height"; var _fromValue = layer.ValueForKeyPath(new NSString(key)); var _toValue = new NSNumber(toValue); var _key = new NSString(key); var barAnimation = CABasicAnimation.FromKeyPath(key); var currentValue = _fromValue; if (layer.PresentationLayer != null) { currentValue = layer.PresentationLayer.ValueForKeyPath(_key); } barAnimation.From = currentValue; barAnimation.To = _toValue; barAnimation.Delegate = @delegate; barAnimation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Default); layer.AddAnimation(barAnimation, key); layer.SetValueForKeyPath(_toValue, _key); }
private void PerformTableTransition() { tableViewLeftMenu.Hidden = !tableViewLeftMenu.Hidden; var transition = new CATransition { Duration = 0.25f, Type = CAAnimation.TransitionPush }; if (tableViewLeftMenu.Hidden) { transition.TimingFunction = CAMediaTimingFunction.FromName(new Foundation.NSString("easeOut")); transition.Subtype = CAAnimation.TransitionFromRight; } else { transition.TimingFunction = CAMediaTimingFunction.FromName(new Foundation.NSString("easeIn")); transition.Subtype = CAAnimation.TransitionFromLeft; } tableViewLeftMenu.Layer.AddAnimation(transition, null); }
void FnPerformTableTransition() { Console.WriteLine("N0rf3n - ViewController - FnPerformTableTransition - Begin"); tableViewMenu.Hidden = !tableViewMenu.Hidden; var transition = new CATransition(); transition.Duration = 0.25f; transition.Type = CAAnimation.TransitionPush; if (tableViewMenu.Hidden) { transition.TimingFunction = CAMediaTimingFunction.FromName(new Foundation.NSString("easeOut")); transition.Subtype = CAAnimation.TransitionFromRight; } else { transition.TimingFunction = CAMediaTimingFunction.FromName(new Foundation.NSString("easeIn")); transition.Subtype = CAAnimation.TransitionFromLeft; } tableViewMenu.Layer.AddAnimation(transition, null); Console.WriteLine("N0rf3n - ViewController - FnPerformTableTransition - End"); }
void PerformTransition(object sender, EventArgs e) { if (transitioning) { return; } // First create a CATransition object to describe the transition var transition = new CATransition(); // Animate over 3/4 of a second transition.Duration = 0.75; // using the ease in/out timing function transition.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut.ToString()); // Now to set the type of transition int rnd = random.Next(types.Length); transition.Type = types[rnd].ToString(); if (rnd < 3) // no fade transition -> randomly choose a subtype { transition.Subtype = supTypes[random.Next(supTypes.Length)].ToString(); } // Assign a delegate that sets transitioning to false, after the animation stopped. this.transitioning = true; transition.Delegate = new AnimationDelegate(this); // Now add the animation to the image view layer. This will perform the transiton. imageView.Layer.AddAnimation(transition, null); // Now hide view 1 & show view 2 that causes Core Animation to animate view1 away and show view2 view1.Hidden = true; view2.Hidden = false; // Now cycle through the views Swap(ref view1, ref view2); Swap(ref view2, ref view3); }
private void PlayExpandAnimation() { CATransaction.Begin(); CATransaction.CompletionBlock = () => { _coloredCircleLayer.Path = coloredCircleLayerPath().CGPath; PlayFocusAnimation(); ShowLabels(); }; var animation = CABasicAnimation.FromKeyPath("path"); animation.Duration = 0.8f; animation.To = FromObject(coloredCircleLayerPath().CGPath); animation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut); // if you remove it the shape will return to the original shape after the animation finished animation.FillMode = CAShapeLayer.FillRuleEvenOdd; animation.RemovedOnCompletion = false; _coloredCircleLayer.AddAnimation(animation, null); CATransaction.Commit(); }
private void SetupRotationAnimation() { if (null == _rotationAnimation) { _rotationAnimation = CABasicAnimation.FromKeyPath("transform.rotation.z"); _rotationAnimation.AnimationStopped += (x, y) => { // Reinitialize any animation settings. SetupRotationAnimation(); if (IsIndeterminate) { // Re-queue the animation to keep the loop going. _arcLayer.AddAnimation(_rotationAnimation, ANIMATION_ROTATION); } else if (null != _arcLayer.AnimationForKey(ANIMATION_ROTATION)) { // The rotation animation needs to be stopped, we we'll ease it out... _rotationAnimation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseOut); // ...then have it removed so it no longer recurs. _rotationAnimation.RemovedOnCompletion = true; // Queue it up for one final rotation... _arcLayer.AddAnimation(_rotationAnimation, ANIMATION_ROTATION); } }; } _rotationAnimation.To = NSNumber.FromFloat((float)Math.PI * 2); _rotationAnimation.Duration = 0.78f; _rotationAnimation.Cumulative = true; _rotationAnimation.FillMode = CAFillMode.Forwards; _rotationAnimation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear); // We don't want to remove the animation when completed, because that would cause the arc to snap back // to its original rotation value. _rotationAnimation.RemovedOnCompletion = false; // We're not going to automatically repeat, because we want the opportunity to modify the transform // on its final spin. Animations cannot be altered once they have been started. _rotationAnimation.RepeatCount = 0; }