private MonthGridView CreateNewGrid(DateTime date) { var grid = new MonthGridView (this, date); grid.CurrentDate = CurrentDate; grid.BuildGrid (); grid.Frame = new RectangleF (0, 0, 320, 400); return grid; }
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; }
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; }