private void DrawBlankMiddleCircle()
        {
            var size = new SizeF(this.Bounds.Size.Width - 40f, this.Bounds.Size.Height - 40f);

            UIGraphics.BeginImageContextWithOptions(size, false, 0f);
            UIColor.Clear.SetFill();
            UIGraphics.RectFill(new RectangleF(0f, 0f, size.Width, size.Height));

            var radius = (nfloat)(Math.Min(size.Width, size.Height) / 2);
            var angle  = 2f * (float)Math.PI / 1;

            var center     = new PointF(size.Width / 2, size.Height / 2);
            var bezierPath = UIBezierPath.FromArc(center, radius, 0, 1 * angle, true);

            bezierPath.AddLineTo(center);
            bezierPath.ClosePath();

            var color = UIColor.FromRGB(83, 83, 83);

            color.SetFill();
            color.SetStroke();

            bezierPath.Fill();
            bezierPath.Stroke();

            var img = UIGraphics.GetImageFromCurrentImageContext();

            UIGraphics.EndImageContext();

            img.Draw(new PointF(20f, 20f));
        }
        private void DrawHueCircle()
        {
            var size = new SizeF(this.Bounds.Size.Width, this.Bounds.Size.Height);

            UIGraphics.BeginImageContextWithOptions(size, true, 0f);
            UIColor.FromRGB(83, 83, 83).SetFill();
            UIGraphics.RectFill(new RectangleF(0f, 0f, size.Width, size.Height));

            var          sectors = 180;
            var          radius  = (nfloat)(Math.Min(size.Width, size.Height) / 2);
            var          angle   = 2f * (float)Math.PI / sectors;
            UIBezierPath bezierPath;

            for (var i = 0; i < sectors; i++)
            {
                var center = new PointF(size.Width / 2, size.Height / 2);
                bezierPath = UIBezierPath.FromArc(center, radius, i * angle, (i + 1) * angle, true);
                bezierPath.AddLineTo(center);
                bezierPath.ClosePath();

                var color = UIColor.FromHSBA((float)i / sectors, 1f, 1f, 1f);
                color.SetFill();
                color.SetStroke();

                bezierPath.Fill();
                bezierPath.Stroke();
            }

            var img = UIGraphics.GetImageFromCurrentImageContext();

            UIGraphics.EndImageContext();

            img.Draw(new PointF(0f, 0f));
        }
        private void SetSliders()
        {
            var y          = DisplayHelper.Is4InchDisplay() ? 40f : 35f;
            var sliderSize = new SizeF(320f - 135f, 20f);
            var sliderX    = 55f;

            _sliderR               = new UISlider(new RectangleF(new PointF(sliderX, 270f), sliderSize));
            _sliderR.MaxValue      = 255;
            _sliderR.MinValue      = 0;
            _sliderR.Value         = 255;
            _sliderR.ValueChanged += Slider_ValueChanged;
            this.View.AddSubview(_sliderR);

            _sliderG               = new UISlider(new RectangleF(new PointF(sliderX, 270f + y), sliderSize));
            _sliderG.MaxValue      = 255;
            _sliderG.MinValue      = 0;
            _sliderG.ValueChanged += Slider_ValueChanged;
            this.View.AddSubview(_sliderG);

            _sliderB               = new UISlider(new RectangleF(new PointF(sliderX, 270f + (y * 2)), sliderSize));
            _sliderB.MaxValue      = 255;
            _sliderB.MinValue      = 0;
            _sliderB.ValueChanged += Slider_ValueChanged;
            this.View.AddSubview(_sliderB);

            var labelX    = 40f;
            var labelSize = new SizeF(20f, 20f);

            var labelR = new UILabel(new RectangleF(new PointF(labelX, _sliderR.Frame.Y), labelSize));

            labelR.Text      = "R";
            labelR.TextColor = UIColor.White;
            this.View.AddSubview(labelR);

            var labelG = new UILabel(new RectangleF(new PointF(labelX, _sliderG.Frame.Y), labelSize));

            labelG.Text      = "G";
            labelG.TextColor = UIColor.White;
            this.View.AddSubview(labelG);

            var labelB = new UILabel(new RectangleF(new PointF(labelX, _sliderB.Frame.Y), labelSize));

            labelB.Text      = "B";
            labelB.TextColor = UIColor.White;
            this.View.AddSubview(labelB);

            var labelValueX    = sliderSize.Width + 65f;
            var labelValueSize = new SizeF(40f, 20f);

            _labelRValue           = new UILabel(new RectangleF(new PointF(labelValueX, _sliderR.Frame.Y), labelValueSize));
            _labelRValue.Text      = "255";
            _labelRValue.TextColor = UIColor.White;
            this.View.AddSubview(_labelRValue);

            _labelGValue           = new UILabel(new RectangleF(new PointF(labelValueX, _sliderG.Frame.Y), labelValueSize));
            _labelGValue.Text      = "0";
            _labelGValue.TextColor = UIColor.White;
            this.View.AddSubview(_labelGValue);

            _labelBValue           = new UILabel(new RectangleF(new PointF(labelValueX, _sliderB.Frame.Y), labelValueSize));
            _labelBValue.Text      = "0";
            _labelBValue.TextColor = UIColor.White;
            this.View.AddSubview(_labelBValue);
        }
        void SetupPlaceViews()
        {
            ccText.Text = "11112222333344445555";

            UITextPosition start     = ccText.BeginningOfDocument;
            UITextPosition end       = ccText.GetPosition(start, 20);
            UITextRange    range     = ccText.GetTextRange(start, end);
            RectangleF     r         = ccText.GetFirstRectForRange(range);
            SizeF          frameRect = r.Size;

            frameRect.Width = (r.Size.Width / 24.0f);
            ccText.Font     = JudoSDKManager.FIXED_WIDTH_FONT_SIZE_20;
            r.Size          = frameRect;
            ccText.Text     = "";


            RectangleF frame = ccPlaceHolder.Frame;

            ccPlaceHolder.Font = JudoSDKManager.FIXED_WIDTH_FONT_SIZE_20;
            ccPlaceHolder.Text = "0000 0000 0000 0000";

            ccPlaceHolder.SetShowTextOffSet(0);
            ccPlaceHolder.Offset = r;

            ccPlaceHolder.BackgroundColor = UIColor.Clear;
            textScroller.InsertSubview(ccPlaceHolder, 0);

            /////////

            expiryText.Text = "MM/YY";

            UITextPosition exStart     = expiryText.BeginningOfDocument;
            UITextPosition exEnd       = expiryText.GetPosition(exStart, 5);
            UITextRange    exRange     = expiryText.GetTextRange(exStart, exEnd);
            RectangleF     exR         = expiryText.GetFirstRectForRange(exRange);
            SizeF          exFrameRect = exR.Size;

            exFrameRect.Width = (exR.Size.Width / 24.0f);
            expiryText.Font   = JudoSDKManager.FIXED_WIDTH_FONT_SIZE_20;
            exR.Size          = exFrameRect;
            expiryText.Text   = "";



            RectangleF expiryFrame = expiryPlaceHolder.Frame;

            expiryPlaceHolder.Font = expiryText.Font;
            expiryPlaceHolder.Text = "MM/YY";

            expiryPlaceHolder.SetShowTextOffSet(0);
            expiryPlaceHolder.Offset = exR;

            expiryPlaceHolder.BackgroundColor = UIColor.Clear;
            textScroller.InsertSubview(expiryPlaceHolder, 1);

            ////

            cvTwoText.Text = "CV2";

            UITextPosition cvStart     = cvTwoText.BeginningOfDocument;
            UITextPosition cvEnd       = cvTwoText.GetPosition(cvStart, 3);
            UITextRange    cvRange     = cvTwoText.GetTextRange(cvStart, cvEnd);
            RectangleF     cvR         = cvTwoText.GetFirstRectForRange(cvRange);
            SizeF          cvFrameRect = cvR.Size;

            cvFrameRect.Width = (cvR.Size.Width / 24.0f);
            cvTwoText.Font    = JudoSDKManager.FIXED_WIDTH_FONT_SIZE_20;
            cvR.Size          = cvFrameRect;
            cvTwoText.Text    = "";

            RectangleF cvTwoFrame = cvTwoPlaceHolder.Frame;

            cvTwoPlaceHolder.Font = cvTwoText.Font;
            cvTwoPlaceHolder.Text = "CV2";

            cvTwoPlaceHolder.SetShowTextOffSet(0);
            cvTwoPlaceHolder.Offset = cvR;

            cvTwoPlaceHolder.BackgroundColor = UIColor.Clear;
            textScroller.InsertSubview(cvTwoPlaceHolder, 2);
        }