public static void FlipWithDuration(this UIView view, double duration, UIViewAnimationFlipDirection direction, int repeatCount, bool shouldAutoReverse) { var subType = string.Empty; switch (direction) { case UIViewAnimationFlipDirection.Top: subType = "fromTop"; break; case UIViewAnimationFlipDirection.Left: subType = "fromLeft"; break; case UIViewAnimationFlipDirection.Bottom: subType = "fromBottom"; break; case UIViewAnimationFlipDirection.Right: subType = "fromRight"; break; default: break; } CATransition transition = new CATransition(); transition.StartProgress = 0; transition.EndProgress = 1; transition.Type = "flip"; transition.Subtype = subType; transition.Duration = duration; transition.RepeatCount = repeatCount; transition.AutoReverses = shouldAutoReverse; view.Layer.AddAnimation(transition, "spin"); }