private void OnPan(UIPanGestureRecognizer pan, Shared.Calendar calendar) { if (pan.State == UIGestureRecognizerState.Began) { var screenWidth = UIScreen.MainScreen.Bounds.Width; var leftEdgeThreshold = screenWidth * 0.15f; var staringPoint = pan.LocationInView(null); if (staringPoint.X < leftEdgeThreshold) { _isSwipingFromLeftEdge = true; } } if (pan.State != UIGestureRecognizerState.Ended) { return; } var velocity = pan.VelocityInView(null); // going right var isSwipingRight = velocity.X > 0; // going left var isSwipingLeft = velocity.X < 0; if (_isSwipingFromLeftEdge) { PullOutMainMenu(); _isSwipingFromLeftEdge = false; return; } if (isSwipingRight && calendar != null) { SwipeFrame(calendar, true); } if (isSwipingLeft && calendar != null) { SwipeFrame(calendar, false); } }
private static async void SwipeCalendar(Shared.Calendar cal, bool isSwipingRight) { if (IsViewAnimating(cal)) { return; } var command = isSwipingRight ? cal.RightSwipeCommand : cal.LeftSwipeCommand; if (cal.IsSwipingAnimated) { await AnimateCalendarStart(!isSwipingRight, cal); cal.ArrowExecutionSetup(!isSwipingRight); command?.Execute(null); await AnimateCalendarEnd(cal); } else { cal.ArrowExecutionSetup(!isSwipingRight); command?.Execute(null); } }