void ResetCalendarView()
        {
            this.View.LayoutIfNeeded();

            _calendar             = new Calendar();
            _calendar.CurrentDate = (NSDate)DateTime.Now;

            var menuView = new CalendarMenuView {
                Frame = new CGRect(0, 0, viewDate.Frame.Size.Width, viewDate.Frame.Size.Height)
            };
            var contentView = new CalendarContentView {
                Frame = new CGRect(0, 0, viewCalendar.Frame.Size.Width, viewCalendar.Frame.Size.Height)
            };

            var appearance = _calendar.CalendarAppearance;

            appearance.GetNSCalendar().FirstWeekDay = (nuint)2;
            appearance.DayDotColor            = appearance.DayCircleColorSelected = GROUP_COLOR;
            appearance.DayTextColorOtherMonth = appearance.DayDotColorOtherMonth = UIColor.Gray;
            appearance.DayTextColor           = appearance.MenuMonthTextColor = UIColor.White;
            appearance.DayCircleColorToday    = UIColor.Red;
            appearance.DayCircleRatio         = (9f / 10f);
            appearance.WeekDayFormat          = CalendarWeekDayFormat.Single;

            appearance.SetMonthLabelTextCallback((NSDate date, Calendar cal) => new NSString(((DateTime)date).ToString("MMMM yyyy")));

            //Link the views to the calendar
            _calendar.MenuMonthsView = menuView;
            _calendar.ContentView    = contentView;

            _calendar.DateSelected       += DateSelected;
            _calendar.NextPageLoaded     += DidLoadNextPage;
            _calendar.PreviousPageLoaded += DidLoadPreviousPage;

            foreach (var view in viewDate.Subviews)
            {
                view.RemoveFromSuperview();
            }

            foreach (var view in viewCalendar.Subviews)
            {
                view.RemoveFromSuperview();
            }

            viewDate.Add(menuView);
            viewCalendar.Add(contentView);

            ReloadEvents();
        }
        protected override void OnElementChanged(ElementChangedEventArgs <CalendarTest.Controls.CalendarView> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement == null)
            {
                _calendar = new Calendar();

                var menuView = new CalendarMenuView {
                    Frame = new CoreGraphics.CGRect(0f, 0f, UIScreen.MainScreen.Bounds.Width - 10, 42f)
                };

                var contentView = new CalendarContentView
                {
                    Frame           = new CoreGraphics.CGRect(0f, 0f, UIScreen.MainScreen.Bounds.Width - 10, (UIScreen.MainScreen.Bounds.Height / 2) - 42f),
                    BackgroundColor = UIColor.White
                };

                var appearance = _calendar.CalendarAppearance;
                appearance.DayCircleColorSelected = UIColor.Orange;
                appearance.DayCircleRatio         = (9f / 10f);
                appearance.WeekDayFormat          = CalendarWeekDayFormat.Single;
                appearance.GetNSCalendar().FirstWeekDay = 2;
                appearance.SetMonthLabelTextCallback((NSDate date, Calendar cal) => new Foundation.NSString(((DateTime)date).ToString("MMMM yyyy")));

                _calendar.ContentView   = contentView;
                _calendar.DateSelected += (sender, args) =>
                {
                    Element.SelectedDate = (DateTime)args.Date;
                    Element.NotifyDateSelected((DateTime)args.Date);
                };

                var view = new UIView
                {
                    Frame = new CoreGraphics.CGRect(0f, 0f, UIScreen.MainScreen.Bounds.Width - 10, UIScreen.MainScreen.Bounds.Height / 2)
                };

                HighlightDays();

                view.Add(menuView);
                view.Add(contentView);
                SetNativeControl(_calendar.ContentView);
            }
        }
Example #3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // Perform any additional setup after loading the view, typically from a nib.
//Create required objects
            var calendar = new Calendar();
            var menuView = new CalendarMenuView
            {
                Frame = new CGRect(0f, 0f, 320f, 40f)
            };
            var contentView = new CalendarContentView
            {
                Frame = new CGRect(0f, 45f, 320f, 280f)
            };

//Customize calendar's appearance
            var appearance = calendar.CalendarAppearance;

            appearance.GetNSCalendar().FirstWeekDay = (nuint)3;
            appearance.DayCircleColorSelected = UIColor.rgba(52, 152, 219, 1.0);
            appearance.DayCircleRatio         = (9f / 10f);
            appearance.WeekDayFormat          = CalendarWeekDayFormat.Single;

            //Link the views to the calendar
            calendar.MenuMonthsView = menuView;
            calendar.ContentView    = contentView;

            calendar.DateSelected       += DateSelected;
            calendar.NextPageLoaded     += DidLoadNextPage;
            calendar.PreviousPageLoaded += DidLoadPreviousPage;

            // Pass a function that returns text to display in month label
            //E.g. "JAN 2014" OR “01/2014"
            appearance.SetMonthLabelTextCallback(
                //Full month-name and year. E.g. DECEMBER 2014
                (NSDate date, Calendar cal) => new NSString(
                    ((DateTime)date).ToString("MMMM yyyy")));

            //Add the views to the current view
            View.Add(menuView);
            View.Add(contentView);
        }
Example #4
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            View.BackgroundColor = UIColor.FromRGBA(66, 86, 110, 255);
            NavigationController.NavigationBarHidden = true;

            //Create required objects
            var menuView = new CalendarMenuView {
                Frame = new CGRect(0f, 20f, 320f, 60f)
            };
            var contentView = new CalendarContentView {
                Frame = new CGRect(0f, 85f, 320f, 270f)
            };
            var eventView = new CalendarEventView {
                Frame = new CGRect(0f, 400f, 320f, 170f)
            };

            //Remember to specify the DateTimeKind for event date
            var fSharpMeetDate =
                new DateTime(2015, 1, 1, 11, 30, 00, DateTimeKind.Local);
            var weddingDate = fSharpMeetDate.AddDays(5);

            //Add events
            _calendar.EventSchedule = new EventDetails[] {
                new EventDetails(
                    startDate: (NSDate)DateTime.Now,
                    endDate: NSDate.Now.AddSeconds(3000),
                    title: "Writing documentation"),
                new EventDetails(
                    (NSDate)fSharpMeetDate,
                    (NSDate)fSharpMeetDate.AddHours(1.5),
                    "F# Group Meeting"),
                new EventDetails(
                    (NSDate)weddingDate,
                    (NSDate)weddingDate.AddHours(2),
                    "Peter and Denise's Wedding"),
            };

            //Customize calendar appearance
            var appearance = _calendar.CalendarAppearance;

            appearance.GetNSCalendar().FirstWeekDay = (nuint)2;
            appearance.DayCircleColorSelected = UIColor.FromRGB(154, 188, 227);
            appearance.DayTextColorOtherMonth = appearance.DayDotColorOtherMonth = UIColor.FromRGB(157, 177, 199);
            appearance.DayDotColor            = appearance.DayTextColor = appearance.MenuMonthTextColor = UIColor.White;
            appearance.DayCircleColorToday    = UIColor.LightTextColor;
            appearance.DayCircleRatio         = (9f / 10f);
            appearance.WeekDayFormat          = CalendarWeekDayFormat.Short;

            // Pass a function that returns text to display in the month label. E.g. "JAN 2014" OR “01/2014"
            appearance.SetMonthLabelTextCallback(
                //Returns full month-name and year. E.g. DECEMBER 2014
                (NSDate date, Calendar cal) => new NSString(((DateTime)date).ToString("MMMM\nyyyy")));

            //Link the views to the calendar
            _calendar.MenuMonthsView = menuView;
            _calendar.ContentView    = contentView;
            _calendar.EventView      = eventView;

            _calendar.DateSelected       += DateSelected;
            _calendar.NextPageLoaded     += DidLoadNextPage;
            _calendar.PreviousPageLoaded += DidLoadPreviousPage;

            //Add calendar views to the main view
            View.Add(menuView);
            View.Add(contentView);
            View.Add(eventView);
        }