public void MoveCalendarMonths(bool upwards, bool animated) { CurrentMonthYear = CurrentMonthYear.AddMonths(upwards? 1 : -1); UserInteractionEnabled = false; var gridToMove = CreateNewGrid(CurrentMonthYear); var pointsToMove = (upwards? 0 + _monthGridView.Lines : 0 - _monthGridView.Lines) * 44; if (upwards && gridToMove.weekdayOfFirst == 0) { pointsToMove += 44; } if (!upwards && _monthGridView.weekdayOfFirst == 0) { pointsToMove -= 44; } gridToMove.Frame = new RectangleF(new PointF(0, pointsToMove), gridToMove.Frame.Size); _scrollView.AddSubview(gridToMove); if (animated) { UIView.BeginAnimations("changeMonth"); UIView.SetAnimationDuration(0.4); UIView.SetAnimationDelay(0.1); UIView.SetAnimationCurve(UIViewAnimationCurve.EaseInOut); } _monthGridView.Center = new PointF(_monthGridView.Center.X, _monthGridView.Center.Y - pointsToMove); gridToMove.Center = new PointF(gridToMove.Center.X, gridToMove.Center.Y - pointsToMove); _monthGridView.Alpha = 0; _shadow.Frame = new RectangleF(new PointF(0, gridToMove.Lines * 44 - 88), _shadow.Frame.Size); _scrollView.Frame = new RectangleF( _scrollView.Frame.Location, new SizeF(_scrollView.Frame.Width, (gridToMove.Lines + 1) * 44)); _scrollView.ContentSize = _scrollView.Frame.Size; SetNeedsDisplay(); if (animated) { UIView.CommitAnimations(); } _monthGridView = gridToMove; UserInteractionEnabled = true; }
private void LoadInitialGrids() { _monthGridView = CreateNewGrid(CurrentMonthYear); var rect = _scrollView.Frame; rect.Size = new SizeF { Height = (_monthGridView.Lines + 1) * 44, Width = rect.Size.Width }; _scrollView.Frame = rect; Frame = new RectangleF(Frame.X, Frame.Y, _scrollView.Frame.Size.Width, _scrollView.Frame.Size.Height + 44); var imgRect = _shadow.Frame; imgRect.Y = rect.Size.Height - 132; _shadow.Frame = imgRect; }