예제 #1
0
		//
		// This method is invoked when the application has loaded and is ready to run. In this
		// method you should instantiate the window, load the UI into it and then make the window
		// visible.
		//
		// You have 17 seconds to return from this method, or iOS will terminate your application.
		//
		public override bool FinishedLaunching (UIApplication app, NSDictionary options)
		{

			FBSettings.DefaultAppID = AppId;
			FBSettings.DefaultDisplayName = DisplayName;
			// create a new window instance based on the screen size
			window = new UIWindow (UIScreen.MainScreen.Bounds);
			rootNavigationController = new UINavigationController ();
			CAGradientLayer degradado = new CAGradientLayer ();
			degradado.Frame = (rootNavigationController.NavigationBar.Bounds);
			UIGraphics.BeginImageContext (rootNavigationController.NavigationBar.Bounds.Size);
			degradado.Colors = new CGColor[] { UIColor.FromRGB (62, 92, 41).CGColor, UIColor.FromRGB (132, 194, 71).CGColor };
			degradado.RenderInContext (UIGraphics.GetCurrentContext());
			UIImage bgDegradado = UIGraphics.GetImageFromCurrentImageContext ();
			UIGraphics.EndImageContext ();
			rootNavigationController.NavigationBar.TintColor = UIColor.White;
			UIStringAttributes atributes = new UIStringAttributes();
			atributes.ForegroundColor = UIColor.White;
			rootNavigationController.NavigationBar.TitleTextAttributes = atributes;

			rootNavigationController.NavigationBar.SetBackgroundImage (bgDegradado, UIBarMetrics.Default);

			// If you have defined a root view controller, set it here:
			// window.RootViewController = myViewController;
			mainView = new MainView ();
			rootNavigationController.PushViewController (mainView,false);

			// make the window visible
			window.RootViewController = rootNavigationController;
			window.MakeKeyAndVisible ();
			
			return true;
		}
예제 #2
0
        public static CAGradientLayer DepthLayer(RectangleF frame, float radius)
        {
            CAGradientLayer layer = new CAGradientLayer();
            layer.Frame = frame;
            layer.CornerRadius = radius;

            layer.Colors = new MonoTouch.CoreGraphics.CGColor[]
            {
                UIColor.FromWhiteAlpha(0.4f, 1).CGColor,
                UIColor.FromWhiteAlpha(0.3f, 1).CGColor,
                UIColor.FromWhiteAlpha(0.2f, 1).CGColor,
                UIColor.FromWhiteAlpha(0.1f, 1).CGColor,
                UIColor.FromWhiteAlpha(0, 1).CGColor
            };
            layer.Locations = new NSNumber[]
            {
                NSNumber.FromFloat(0f),
                NSNumber.FromFloat(0.3f),
                NSNumber.FromFloat(0.5f),
                NSNumber.FromFloat(0.7f),
                NSNumber.FromFloat(1f),
            };

            return layer;
        }
예제 #3
0
 public HorizontalDividerView(CGRect rect)
     : base(rect)
 {
     var backgroundLayer = new CAGradientLayer();
     backgroundLayer.Frame = this.Bounds;
     backgroundLayer.Colors = new CoreGraphics.CGColor[] { UIColor.White.CGColor,UIColor.LightGray.CGColor };
     Layer.AddSublayer(backgroundLayer);
 }
 public AdvancedListViewRenderer()
 {
     _topOverlayView = new UIView ();
     _topOverlayMask = new CAGradientLayer ();
     _topOverlayView.Layer.AddSublayer (_topOverlayMask);
     _topOverlayView.UserInteractionEnabled = false;
     _bottomOverlayView = new UIView ();
     _bottomOverlayMask = new CAGradientLayer ();
     _bottomOverlayView.Layer.AddSublayer (_bottomOverlayMask);
     _bottomOverlayView.UserInteractionEnabled = false;
 }
예제 #5
0
        public GradientLayer(GradientLayerType type, GradientLayerAreaType segment)
        {
            _type = type;
            _segment = segment;

            _minimumOpacity = 0f;

            _gradientMaskLayer = CALayer.Create ();
            _gradientMaskLayer.ContentsScale = UIScreen.MainScreen.Scale;

            _gradientLayer = new CAGradientLayer ();
            _gradientLayer.Frame = this.Bounds;
            _gradientLayer.Mask = _gradientMaskLayer;

            this.MasksToBounds = true;
            this.AddSublayer (_gradientLayer);
            this.ContentsScale = UIScreen.MainScreen.Scale;

            if (_type == GradientLayerType.Face)
            {
                _gradientLayer.Colors = colors1;
                _gradientLayer.Locations = locations1;

                _maximumOpacity = .75f;
            }
            else
            {
                _gradientLayer.Colors = colors2;
                _gradientLayer.Locations = locations2;

                _maximumOpacity = 1f;
            }

            if (_segment == GradientLayerAreaType.Top)
            {
                this.ContentsGravity = "bottom";

                _gradientLayer.StartPoint = new PointF (0, 0);
                _gradientLayer.EndPoint = new PointF (0, 1);

                _gradientMaskLayer.ContentsGravity = "bottom";
            }
            else
            {
                this.ContentsGravity = "top";

                _gradientLayer.StartPoint = new PointF (0, 1);
                _gradientLayer.EndPoint = new PointF (0, 0);

                _gradientMaskLayer.ContentsGravity = "top";
            }

            _gradientLayer.Opacity = _minimumOpacity;
        }
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged (e);

            if (e.OldElement == null) // perform initial setup
            {
                var gradientLayer = new CAGradientLayer ();
                gradientLayer.Frame = View.Bounds;
                gradientLayer.Colors = new CGColor[] {Color.FromHex("#a8d7ec").ToCGColor(), Color.FromHex("#3da0c7").ToCGColor()};
                View.Layer.InsertSublayer (gradientLayer, 0);
            }
        }
		CALayer CreateShadowWithFrame (RectangleF frame)
		{
			var gradient = new CAGradientLayer ();
			gradient.Frame = frame;
			
			var lightColor = UIColor.Black.ColorWithAlpha (0);
			var darkColor = UIColor.Black.ColorWithAlpha (0.3f);
			
			gradient.Colors = new CGColor[]{darkColor.CGColor, lightColor.CGColor};
			
			return gradient;
		}
예제 #8
0
		private void SetBackgroundGradient()
		{
			var startColor = UIColor.FromRGB(0xb4, 0xec, 0x51); //"#B4EC51"
			var endColor = UIColor.FromRGB(0x42, 0x93, 0xc21); //"#429321"
 
			var gradientLayer = new CAGradientLayer();
			gradientLayer.Colors = new CoreGraphics.CGColor[] { startColor.CGColor, endColor.CGColor };
			gradientLayer.Locations = new NSNumber[] { 0.0, 1.0 };
 
 
			gradientLayer.Frame = this.View.Bounds;
			this.View.Layer.InsertSublayer(gradientLayer, 0);
		}
예제 #9
0
        public static CAGradientLayer DropShadowLayer(float length, int side)
        {
            int shadowDepth = 6;

            CAGradientLayer layer = new CAGradientLayer();
            layer.Colors = new MonoTouch.CoreGraphics.CGColor[]
            {
                UIColor.FromRGBA(0, 0, 0, 120).CGColor,
                UIColor.FromRGBA(32, 34, 35, 0).CGColor
            };

            // set layer frame based on direction
            if (side == DropShadowTop || side == DropShadowBottom)
            {
                layer.Frame = new RectangleF(0, 0, length, shadowDepth);
            }
            else
            {
                layer.Frame = new RectangleF(0, 0, shadowDepth, length);
            }

            // set shadow direction
            // layer default equivalent to DropShadowTop: start = (0.5, 0), end = (0.5, 1)
            if (side != DropShadowTop)
            {
                float xi, xf, yi, yf;

                if (side == DropShadowBottom)
                {
                    yi = 1;
                    yf = 0;
                    xi = 0.5f;
                    xf = 0.5f;
                }
                else
                {
                    yi = 0.5f;
                    yf = 0.5f;
                    xi = side == DropShadowLeft ? 0 : 1;
                    xf = xi == 0 ? 1 : 0;
                }
                layer.StartPoint = new PointF(xf, yf);
                layer.EndPoint = new PointF(xi, yi);
            }

            return layer;
        }
예제 #10
0
	    public static UIImage GetGradientImage(CGColor startColor, CGColor endColor, CGSize size)
	    {
            UIGraphics.BeginImageContext(size);
            var context = UIGraphics.GetCurrentContext();
			if (context != null) {
				var gradientLayer = new CAGradientLayer();
				gradientLayer.Frame = new CGRect(0, 0, size.Width, size.Height);
				gradientLayer.Colors = new CGColor[] { startColor, endColor };
				gradientLayer.RenderInContext(context);
				UIImage gradientImage = UIGraphics.GetImageFromCurrentImageContext();
				UIGraphics.EndImageContext();

				return gradientImage;
			}

			return null;
	    }
예제 #11
0
		public CustomListCell (IntPtr ptr) : base(ptr)
		{
			this.ClipsToBounds = true;

			this.TextLabel.TextColor = new UIColor ((nfloat)0.2, (nfloat)0.2, (nfloat)0.2, (nfloat)1);
			this.TextLabel.Font = UIFont.FromName ("HelveticaNeue-Italic", (nfloat)13);

			this.DetailTextLabel.TextColor = new UIColor ((nfloat)0.2, (nfloat)0.2, (nfloat)0.2, (nfloat)1);
			this.DetailTextLabel.Font = UIFont.FromName ("HelveticaNeue-Italic", (nfloat)11);

			this.ImageView.ContentMode = UIViewContentMode.ScaleAspectFill;

			this.gradient = new CAGradientLayer ();
			this.gradient.Colors = new CGColor[] { UIColor.Clear.CGColor, new UIColor((nfloat)1, (nfloat)1, (nfloat)1, (nfloat)0.8).CGColor };
			this.gradient.Locations = new NSNumber[] { new NSNumber(0.0), new NSNumber(0.7) };
			this.ImageView.Layer.InsertSublayer(this.gradient, 0);

			((TKView)this.BackgroundView).Stroke.StrokeSides = 0;
		}
예제 #12
0
        /// <summary>
        /// Lays out the subviews for this view.
        /// </summary>
        public override void LayoutSubviews()
        {
            base.LayoutSubviews();

            // Create the colors for our gradient.
            UIColor transparent = UIColor.FromWhiteAlpha(1.0f, 0);
            UIColor opaque = UIColor.FromWhiteAlpha(1.0f, 1.0f);

            // Create a masklayer.
            CALayer maskLayer = new CALayer() { Frame = this.Bounds };
            CAGradientLayer gradientLayer = new CAGradientLayer()
            {
                Frame = new RectangleF(this.Bounds.X, 0, this.Bounds.Size.Width, this.Bounds.Size.Height),
                Colors = new CGColor[] { transparent.CGColor, transparent.CGColor, opaque.CGColor, opaque.CGColor },
                Locations = new NSNumber[] { 0.0f, 0.09f, 0.11f, 1.0f }
            };

            // Add the mask.
            maskLayer.AddSublayer(gradientLayer);
            this.Layer.Mask = maskLayer;
        }
예제 #13
0
			public GlassButton() : base(CGRect.Empty)
			{
				// Create a mostly transparent gradient for the button background
				_layerGradient = new CAGradientLayer()
				{
					Colors = new CoreGraphics.CGColor[]
					{
						new CoreGraphics.CGColor(1,1,1,0.5f),
						new CoreGraphics.CGColor(1,1,1,0.1f)
					},
					Locations = new NSNumber[]
					{
						0.0f,
						1.0f
					},
					CornerRadius = 5,
					Frame = this.Bounds,
				};
				
				// Create another mostly transparent layer to darken the button when it's pressed
				_layerDarken = new CALayer()
				{
					BackgroundColor = new CoreGraphics.CGColor(0,0,0,0.2f),
					CornerRadius = 5,
					Frame = this.Bounds,
					Hidden = true,		// Normally hidden
				};
				
				// Add the sub layers
				Layer.AddSublayer(_layerDarken);
				Layer.AddSublayer(_layerGradient);
				
				// Put on a rounded border
				Layer.BorderWidth = 1;
				Layer.BorderColor = new CoreGraphics.CGColor(0,0,0,0.2f);
				Layer.CornerRadius = 5;
				
				// Setup the title text color
				SetTitleColor(UIColor.DarkGray, UIControlState.Normal);
			}
예제 #14
0
		public void Init(RectangleF rect)
		{
			Layer.MasksToBounds = true;
			Layer.CornerRadius = 8;
			
			var gradientFrame = rect;
			
			var shineFrame = gradientFrame;
			shineFrame.Y += 1;
			shineFrame.X += 1;
			shineFrame.Width -= 2;
			shineFrame.Height = (shineFrame.Height / 2);

			var shineLayer = new CAGradientLayer();
			shineLayer.Frame = shineFrame;
			shineLayer.Colors = new MonoTouch.CoreGraphics.CGColor[] { UIColor.White.ColorWithAlpha (0.75f).CGColor, UIColor.White.ColorWithAlpha (0.10f).CGColor };
			shineLayer.CornerRadius = 8;
			
			var backgroundLayer = new CAGradientLayer();
			backgroundLayer.Frame = gradientFrame;
			backgroundLayer.Colors = new MonoTouch.CoreGraphics.CGColor[] { Color.ColorWithAlpha(0.99f).CGColor, Color.ColorWithAlpha(0.80f).CGColor };

			var highlightLayer = new CAGradientLayer();
			highlightLayer.Frame = gradientFrame;
			
			Layer.AddSublayer(backgroundLayer);
			Layer.AddSublayer(highlightLayer);
			Layer.AddSublayer(shineLayer);
		
			VerticalAlignment = UIControlContentVerticalAlignment.Center;
			Font = UIFont.BoldSystemFontOfSize(17);
			SetTitle(Title, UIControlState.Normal);
			SetTitleColor(UIColor.White, UIControlState.Normal);
			
			_Initialized = true;
		}
        /// <summary>
        /// Setup the gradient layer
        /// </summary>
        /// <param name="e"></param>
        protected override void OnElementChanged(ElementChangedEventArgs <ContentView> e)
        {
            base.OnElementChanged(e);

            if (GradientContentView != null &&
                NativeView != null)
            {
                // Create a gradient layer and add it to the
                // underlying UIView
                GradientLayer = new CAGradientLayer();

                GradientLayer.Frame  = NativeView.Bounds;
                GradientLayer.Colors = new CGColor[]
                {
                    GradientContentView.StartColor.ToCGColor(),
                        GradientContentView.EndColor.ToCGColor()
                };
                // GradientLayer.Locations  = new NSNumber[] {0,1};
                GradientLayer.StartPoint = new CGPoint(GradientContentView.StartPointX, GradientContentView.StartPointY);
                GradientLayer.EndPoint   = new CGPoint(GradientContentView.EndPointX, GradientContentView.EndPointY);

                // GradientLayer.CornerRadius = 8;
                //GradientLayer.CornerRadius =new nfloat();
                // GradientLayer.StartPoint = new CGPoint(0.97, 0.07);
                //  GradientLayer.EndPoint = new CGPoint(0.23, 0.75);
                SetOrientation();
                GradientLayer.CornerRadius = GradientContentView.CornerRadius;
                //GradientLayer.ShadowOffset = new CGSize(3, 3);

                //UIBezierPath maskPath = UIBezierPath.FromRoundedRect(this.Bounds, UIRectCorner.TopLeft | UIRectCorner.TopRight, new SizeF(20, 20));

                //CAShapeLayer maskLayer = new CAShapeLayer();
                //maskLayer.Frame = this.Bounds;
                //maskLayer.Path = maskPath.CGPath;
                //maskLayer.InsertSublayer(GradientLayer,0);
                //maskLayer.FillColor = Color.Aqua.ToCGColor();

                //GradientLayer.Mask = maskLayer;
                //maskLayer.
                // maskLayer.FillColor= GradientContentView.StartColor.ToCGColor();

                // Set the newly created shape layer as the mask for the image view's layer
                // this.Layer.Mask = maskLayer;



                NativeView.Layer.InsertSublayer(GradientLayer, 0);

                if (GradientContentView.RoundCorners != RoundType.RoundAll)
                {
                    if (GradientContentView.RoundCorners == RoundType.RoundTop ||
                        GradientContentView.RoundCorners == RoundType.RoundBottom)
                    {
                        var             roundCornersTop = GradientContentView.RoundCorners == RoundType.RoundTop;
                        CAGradientLayer gradient2       = new CAGradientLayer();
                        gradient2.Frame = new CGRect(0, roundCornersTop ? GradientContentView.CornerRadius : 0,
                                                     this.Bounds.Size.Width, Bounds.Size.Height - GradientContentView.CornerRadius);
                        gradient2.Colors = new CGColor[]
                        {
                            GradientContentView.StartColor.ToCGColor(),
                                GradientContentView.EndColor.ToCGColor()
                        };
                        // GradientLayer.Locations  = new NSNumber[] {0,1};
                        gradient2.StartPoint = new CGPoint(GradientContentView.StartPointX,
                                                           GradientContentView.StartPointY);
                        gradient2.EndPoint     = new CGPoint(GradientContentView.EndPointX, GradientContentView.EndPointY);
                        gradient2.CornerRadius = 0.0f;

                        NativeView.Layer.InsertSublayer(gradient2, 1);
                    }
                    else
                    {
                        CAGradientLayer gradient2 = new CAGradientLayer();
                        gradient2.Colors = new CGColor[]
                        {
                            GradientContentView.StartColor.ToCGColor(),
                                GradientContentView.EndColor.ToCGColor()
                        };
                        // GradientLayer.Locations  = new NSNumber[] {0,1};
                        gradient2.StartPoint = new CGPoint(GradientContentView.StartPointX,
                                                           GradientContentView.StartPointY);
                        gradient2.EndPoint     = new CGPoint(GradientContentView.EndPointX, GradientContentView.EndPointY);
                        gradient2.CornerRadius = 0.0f;



                        CAGradientLayer gradient3 = new CAGradientLayer();
                        gradient3.Colors = new CGColor[]
                        {
                            GradientContentView.StartColor.ToCGColor(),
                                GradientContentView.EndColor.ToCGColor()
                        };
                        // GradientLayer.Locations  = new NSNumber[] {0,1};
                        gradient3.StartPoint = new CGPoint(GradientContentView.StartPointX,
                                                           GradientContentView.StartPointY);
                        gradient3.EndPoint     = new CGPoint(GradientContentView.EndPointX, GradientContentView.EndPointY);
                        gradient3.CornerRadius = 0.0f;



                        switch (GradientContentView.RoundCorners)
                        {
                        case RoundType.RoundLeft:
                            gradient2.Frame = new CGRect(GradientContentView.CornerRadius, 0, this.Bounds.Size.Width - GradientContentView.CornerRadius, Bounds.Size.Height);
                            gradient3       = null;
                            break;

                        case RoundType.RoundRight:
                            gradient2.Frame = new CGRect(0, 0, this.Bounds.Size.Width - GradientContentView.CornerRadius, Bounds.Size.Height);
                            gradient3       = null;
                            break;

                        case RoundType.RoundLeftTop:                        /*done*/
                            gradient2.Frame = new CGRect(0, GradientContentView.CornerRadius, this.Bounds.Size.Width, Bounds.Size.Height - GradientContentView.CornerRadius);
                            gradient3.Frame = new CGRect(GradientContentView.CornerRadius, 0, this.Bounds.Size.Width - GradientContentView.CornerRadius, Bounds.Size.Height);
                            break;

                        case RoundType.RoundLeftBottom:                        /*done*/
                            gradient2.Frame = new CGRect(0, 0, this.Bounds.Size.Width, Bounds.Size.Height - GradientContentView.CornerRadius);
                            gradient3.Frame = new CGRect(GradientContentView.CornerRadius, 0, this.Bounds.Size.Width - GradientContentView.CornerRadius, Bounds.Size.Height);
                            break;

                        case RoundType.RoundRightTop:
                            gradient2.Frame = new CGRect(0, GradientContentView.CornerRadius, this.Bounds.Size.Width, Bounds.Size.Height - GradientContentView.CornerRadius);
                            gradient3.Frame = new CGRect(0, 0, this.Bounds.Size.Width - GradientContentView.CornerRadius, Bounds.Size.Height);
                            break;

                        case RoundType.RoundRightBottom:                        /*done*/
                            gradient2.Frame = new CGRect(0, 0, this.Bounds.Size.Width, Bounds.Size.Height - GradientContentView.CornerRadius);
                            gradient3.Frame = new CGRect(0, 0, this.Bounds.Size.Width - GradientContentView.CornerRadius, Bounds.Size.Height);
                            break;
                        }



                        NativeView.Layer.InsertSublayer(gradient2, 1);
                        if (gradient3 != null)
                        {
                            NativeView.Layer.InsertSublayer(gradient3, 2);
                        }
                    }
                }


                //   NativeView.Layer.InsertSublayerBelow(GradientLayer, gradient2);
                //   NativeView.Layer.InsertSublayerBelow(gradient2, layer);
                //  GradientLayer.Mask = maskLayer;



                /*
                 *
                 *              UIView* layer = [[UIView alloc] initWithFrame: CGRectMake(24, 154, 321, 272)];
                 *              CAGradientLayer* gradient = [CAGradientLayer layer];
                 *              gradient.frame = CGRectMake(0, 0, 321, 272);
                 *              gradient.colors = @[(id)[[UIColor colorWithRed:0.55 green:0.69 blue:0.92 alpha:1]CGColor],(id)[[UIColor colorWithRed:0.36 green:0.58 blue:0.94 alpha:1]CGColor]];
                 *              gradient.locations = @[@(0), @(1)];
                 *              gradient.startPoint = CGPointMake(0.97, 0.07);
                 *              gradient.endPoint = CGPointMake(0.23, 0.75);
                 *              [[layer layer]addSublayer:gradient];
                 *              [[self view]addSubview:layer];
                 *
                 */



                //NativeView.BackgroundColor = UIColor.Blue;
            }
        }
예제 #16
0
		public void SetupLayers()
		{
			var bevelLayer = new CAGradientLayer();
			bevelLayer.Frame = new RectangleF(0, 0, Frame.Width, Frame.Height);
			bevelLayer.Colors = 
				new MonoTouch.CoreGraphics.CGColor[] { 
				UIColor.FromWhiteAlpha(0, 0.5f).CGColor,
				UIColor.White.CGColor,
			};
			bevelLayer.CornerRadius = 4.0f;
			bevelLayer.NeedsDisplayOnBoundsChange = true;
			
			_colorLayer = new CALayer(Layer);
			_colorLayer.Frame = new RectangleF(0, 1, Frame.Width, Frame.Height - 2);
			_colorLayer.BorderColor = new UIColor(0, 0, 0, 0.1f).CGColor;
			_colorLayer.BackgroundColor = _tint.CGColor;
			_colorLayer.BorderWidth = 1.0f;
			_colorLayer.CornerRadius = 4.0f;
			_colorLayer.NeedsDisplayOnBoundsChange = true;

			var colorGradient = new CAGradientLayer();
			colorGradient.Frame = new RectangleF(0, 1, Frame.Width, Frame.Height - 2);
			colorGradient.Colors = 
				new CGColor[] { 
				UIColor.FromWhiteAlpha(1, 0.1f).CGColor,
				UIColor.FromWhiteAlpha(0.2f, 0.1f).CGColor
			};
			colorGradient.Locations = 
				new NSNumber[] {
				new NSNumber(0.0f),
				new NSNumber(1.0f)
			};
			colorGradient.CornerRadius = 4.0f;
			colorGradient.NeedsDisplayOnBoundsChange = true;

			Layer.AddSublayer(bevelLayer);
			Layer.AddSublayer(_colorLayer);
			Layer.AddSublayer(colorGradient);
			BringSubviewToFront(this.TitleLabel);
		}		
예제 #17
0
        public KSStapleMenuBlurView(KSStapleMenu menu)
            : base()
        {
            this.menu = menu;
            this.BackgroundColor = UIColor.LightGray;
            this.Layer.CornerRadius = 15f;
            this.gradientLayer = new CAGradientLayer();
            if(menu.Mode == KSStapleMenu.STAPLEMENU_MODE.Left)
            {
                this.gradientLayer.Colors = new CGColor[] { UIColor.FromRGB(0.4f, 0.4f, 0.4f).CGColor, UIColor.FromRGB(0.9f, 0.9f, 0.9f).CGColor };
            }
            else
            {
                this.gradientLayer.Colors = new CGColor[] { UIColor.FromRGB(0.9f, 0.9f, 0.9f).CGColor, UIColor.FromRGB(0.4f, 0.4f, 0.4f).CGColor };
            }

            this.gradientLayer.Opacity = 0.8f;
            this.gradientLayer.StartPoint = new PointF(0f, 0.5f);
            this.gradientLayer.EndPoint = new PointF(1f, 0.5f);
            this.Layer.AddSublayer(this.gradientLayer);
        }
		public GMAlbumsViewCell (UITableViewCellStyle style, string reuseIdentifier)
			: base(style, reuseIdentifier)
		{
			Opaque = false;
			BackgroundColor = UIColor.Clear;
			TextLabel.BackgroundColor = BackgroundColor;
			DetailTextLabel.BackgroundColor = BackgroundColor;
			Accessory = UITableViewCellAccessory.DisclosureIndicator;

			// Border width of 1 pixel:
			nfloat borderWidth = 1.0f / UIScreen.MainScreen.Scale;

			// ImageView
			ImageView3 = new UIImageView {
				ContentMode = UIViewContentMode.ScaleAspectFill,
				Frame = new CGRect(GMAlbumsViewController.AlbumLeftToImageSpace + 4, 8, GMAlbumsViewController.AlbumThumbnailSize3.Width, GMAlbumsViewController.AlbumThumbnailSize3.Height),
				ClipsToBounds = true,
				TranslatesAutoresizingMaskIntoConstraints = true,
				AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin,
			};
			ImageView3.Layer.BorderColor = UIColor.White.CGColor;
			ImageView3.Layer.BorderWidth = borderWidth;
			ContentView.AddSubview (ImageView3);

			// ImageView
			ImageView2 = new UIImageView {
				ContentMode = UIViewContentMode.ScaleAspectFill,
				Frame = new CGRect(GMAlbumsViewController.AlbumLeftToImageSpace + 2, 8 + 2, GMAlbumsViewController.AlbumThumbnailSize2.Width, GMAlbumsViewController.AlbumThumbnailSize2.Height),
				ClipsToBounds = true,
				TranslatesAutoresizingMaskIntoConstraints = true,
				AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin,
			};
			ImageView2.Layer.BorderColor = UIColor.White.CGColor;
			ImageView2.Layer.BorderWidth = borderWidth;
			ContentView.AddSubview (ImageView2);

			// ImageView
			ImageView1 = new UIImageView {
				ContentMode = UIViewContentMode.ScaleAspectFill,
				Frame = new CGRect(GMAlbumsViewController.AlbumLeftToImageSpace, 8 + 4, GMAlbumsViewController.AlbumThumbnailSize1.Width, GMAlbumsViewController.AlbumThumbnailSize1.Height),
				ClipsToBounds = true,
				TranslatesAutoresizingMaskIntoConstraints = true,
				AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin,
			};
			ImageView1.Layer.BorderColor = UIColor.White.CGColor;
			ImageView1.Layer.BorderWidth = borderWidth;
			ContentView.AddSubview (ImageView1);

			// The video gradient, label & icon
			var gradientFrame = new CGRect(0.0f, GMAlbumsViewController.AlbumThumbnailSize1.Height - GMAlbumsViewController.AlbumGradientHeight, GMAlbumsViewController.AlbumThumbnailSize1.Width, GMAlbumsViewController.AlbumGradientHeight);
			_gradientView = new UIView (gradientFrame) { 
				AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleTopMargin,
				TranslatesAutoresizingMaskIntoConstraints = true,
				Hidden = true
			};
			var topGradient = UIColor.FromRGBA (0f, 0f, 0f, 0f);
			var midGradient = UIColor.FromRGBA (0f, 0f, 0f, 0.33f);
			var botGradient = UIColor.FromRGBA (0f, 0f, 0f, 0.75f);
			_gradient = new CAGradientLayer () {
				Frame = _gradientView.Bounds,
				Colors = new[] {topGradient.CGColor, midGradient.CGColor, botGradient.CGColor},
				Locations = new NSNumber[] {0.0f, 0.5f, 1.0f},
			};
			_gradientView.Layer.InsertSublayer (_gradient, 0);
			ImageView1.AddSubview (_gradientView);

			// VideoIcon
			_videoIcon = new UIImageView {
				ContentMode = UIViewContentMode.ScaleAspectFill,
				Frame = new CGRect(3, GMAlbumsViewController.AlbumThumbnailSize1.Height - 4 - 8, 15, 8),
				Image = UIImage.FromFile("GMVideoIcon"),
				ClipsToBounds = true,
				TranslatesAutoresizingMaskIntoConstraints = true,
				AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin,
				Hidden = false
			};
			ImageView1.AddSubview (_videoIcon);

			// TextLabels
			TextLabel.Font = UIFont.SystemFontOfSize(17.0f);
			TextLabel.Lines = 1;
			TextLabel.TranslatesAutoresizingMaskIntoConstraints = false;
			TextLabel.AdjustsFontSizeToFitWidth = true;

			DetailTextLabel.Font = UIFont.SystemFontOfSize(17.0f);
			DetailTextLabel.Lines = 1;
			DetailTextLabel.TranslatesAutoresizingMaskIntoConstraints = false;
			DetailTextLabel.AdjustsFontSizeToFitWidth = true;

			// Set next text labels constraints :
			ContentView.AddConstraints (
				NSLayoutConstraint.FromVisualFormat("H:[imageView1]-(offset)-[textLabel]-|", 
					NSLayoutFormatOptions.DirectionLeadingToTrailing,
					new NSDictionary("offset", GMAlbumsViewController.AlbumImageToTextSpace),
					new NSDictionary("textLabel", TextLabel, "imageView1", ImageView1))
			);

			ContentView.AddConstraints (
				NSLayoutConstraint.FromVisualFormat("H:[imageView1]-(offset)-[detailTextLabel]-|", 
					NSLayoutFormatOptions.DirectionLeadingToTrailing,
					new NSDictionary("offset", GMAlbumsViewController.AlbumImageToTextSpace),
					new NSDictionary("detailTextLabel", DetailTextLabel, "imageView1", ImageView1))
			);

			ContentView.AddConstraints (new [] {
				NSLayoutConstraint.Create(TextLabel, NSLayoutAttribute.Bottom, NSLayoutRelation.Equal, TextLabel.Superview, NSLayoutAttribute.CenterY, 1f, 0f)
			});

			ContentView.AddConstraints (new [] {
				NSLayoutConstraint.Create(DetailTextLabel, NSLayoutAttribute.Top, NSLayoutRelation.Equal, TextLabel.Superview, NSLayoutAttribute.CenterY, 1f, 4f)
			});
		}
		public void Initialize () 
		{
			if (ImageView != null) {
				return;
			}

			Opaque = false;
			IsEnabled = true;

			var cellSize = ContentView.Bounds.Size.Width;

			// The image view
			ImageView = new UIImageView
			{
				Frame = new CGRect(0, 0, cellSize, cellSize),
				ContentMode = UIViewContentMode.ScaleAspectFill,
				ClipsToBounds = true,
				TranslatesAutoresizingMaskIntoConstraints = false,
				AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth
			};
			AddSubview (ImageView);

			// The video gradient, label & icon
			var x_offset = 4.0f;
			_gradientView = new UIView (new CGRect (0, Bounds.Size.Height - TitleHeight, Bounds.Size.Width, TitleHeight)) {
				AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleTopMargin,
				TranslatesAutoresizingMaskIntoConstraints = false,
				Hidden = true
			};

			var topGradient = UIColor.FromRGBA (0, 0, 0, 0);
			var botGradient = UIColor.FromRGBA (0, 0, 0, 0.8f);
			_gradient = new CAGradientLayer {
				Frame = _gradientView.Bounds,
				Colors = new [] { topGradient.CGColor, botGradient.CGColor }
			};
			_gradientView.Layer.AddSublayer (_gradient);

			_videoIcon = new UIImageView (new CGRect(x_offset, Bounds.Size.Height - TitleHeight, Bounds.Size.Width - (2 * x_offset), TitleHeight)) {
				ContentMode = UIViewContentMode.Left,
				Image = UIImage.FromFile("GMVideoIcon"),
				TranslatesAutoresizingMaskIntoConstraints = false,
				AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleWidth,
				Hidden = true
			};
			AddSubview (_videoIcon);

			_videoDuration = new UILabel {
				Font = TitleFont,
				TextColor = TitleColor,
				TextAlignment = UITextAlignment.Right,
				Frame = new CGRect(x_offset, Bounds.Size.Height - TitleHeight, Bounds.Size.Width - (2 * x_offset), TitleHeight),
				ContentMode = UIViewContentMode.Right,
				TranslatesAutoresizingMaskIntoConstraints = false,
				AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleWidth,
				Hidden = true
			};
			AddSubview (_videoDuration);

			// Selection overlay & icon
			_coverView = new UIView (Bounds) {
				TranslatesAutoresizingMaskIntoConstraints = false,
				AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth,
				BackgroundColor = UIColor.FromRGBA(0.24f, 0.47f, 0.85f, 0.6f),
				Hidden = true
			};
			AddSubview (_coverView);

			_selectedButton = new UIButton (UIButtonType.Custom) {
				Frame = new CGRect(2 * Bounds.Size.Width / 3, 0 * Bounds.Size.Width / 3, Bounds.Size.Width / 3, Bounds.Size.Width / 3),
				ContentMode = UIViewContentMode.TopRight,
				AdjustsImageWhenHighlighted = false,
				TranslatesAutoresizingMaskIntoConstraints = false,
				AutoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth,
				Hidden = false,
				UserInteractionEnabled = false
			};
			_selectedButton.SetImage (null, UIControlState.Normal);
			_selectedButton.SetImage (UIImage.FromFile ("GMSelected"), UIControlState.Selected);
			AddSubview (_selectedButton);

			// Note: the views above are created in case this is toggled per cell, on the fly, etc.!
			ShouldShowSelection = true;
		}
예제 #20
0
 protected override void OnDetached()
 {
     gradientDrawable = null;
 }
예제 #21
0
        public override void DrawRect(CGRect dirtyRect)
        {
            base.DrawRect(dirtyRect);

            var layout = (GradientStackLayout)this.Element;

            if (layout.GradientColors.Any())
            {
                var gradient = new CAGradientLayer()
                {
                    Frame       = dirtyRect,
                    BorderColor = layout.BorderColor.ToCGColor(),
                    BorderWidth = (nfloat)layout.BorderWidth,
                    Colors      = layout.GradientColors?.Reverse().Select(c => c.ToCGColor()).ToArray(),
                };

                if (layout.GradientOrientation == StackOrientation.Horizontal)
                {
                    gradient.StartPoint = new CGPoint(0, 0.5);
                    gradient.EndPoint   = new CGPoint(1, 0.5);
                }
                else
                {
                    gradient.StartPoint = new CGPoint(0.5, 0);
                    gradient.EndPoint   = new CGPoint(0.5, 1);
                }

                NativeView.Layer.InsertSublayer(gradient, 0);
            }

            if (layout.LeftBorderWidth > 0)
            {
                var left = new CALayer()
                {
                    Frame           = new CGRect(0, 0, layout.LeftBorderWidth, dirtyRect.Size.Height),
                    BackgroundColor = layout.LeftBorderColor.ToCGColor()
                };

                NativeView.Layer.AddSublayer(left);
            }

            if (layout.TopBorderWidth > 0)
            {
                var top = new CALayer()
                {
                    Frame = new CGRect(0,
                                       dirtyRect.Size.Height - layout.TopBorderWidth,
                                       dirtyRect.Size.Width,
                                       layout.TopBorderWidth),
                    BackgroundColor = layout.TopBorderColor.ToCGColor()
                };

                NativeView.Layer.AddSublayer(top);
            }

            if (layout.RightBorderWidth > 0)
            {
                var right = new CALayer()
                {
                    Frame = new CGRect(dirtyRect.Size.Width - layout.RightBorderWidth,
                                       0,
                                       layout.RightBorderWidth,
                                       dirtyRect.Size.Height),
                    BackgroundColor = layout.RightBorderColor.ToCGColor()
                };

                NativeView.Layer.AddSublayer(right);
            }

            if (layout.BottomBorderWidth > 0)
            {
                var bottom = new CALayer()
                {
                    Frame           = new CGRect(0, 0, dirtyRect.Size.Width, layout.BottomBorderWidth),
                    BackgroundColor = layout.BottomBorderColor.ToCGColor()
                };

                NativeView.Layer.AddSublayer(bottom);
            }
        }
예제 #22
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var gradientLayer = new CAGradientLayer();

            gradientLayer.Colors = new[] { UIColor.FromRGB(98, 107, 186).CGColor, UIColor.FromRGB(57, 122, 193).CGColor };
            gradientLayer.Frame  = new CGRect(0, 0, ProfileHeaderView.Frame.Width + 50, ProfileHeaderView.Frame.Height);
            ProfileHeaderView.Layer.InsertSublayer(gradientLayer, 0);

            btnBack.Hidden = true;

            //UIImageView view = new UIImageView()
            //{
            //    Frame = new CGRect(0, 250, ProfileWall.Frame.Width, ProfileWall.Frame.Height),
            //    //BackgroundColor=UIColor.Blue,
            //    Image = UIImage.FromFile("user1.jpg")
            //};
            //View.Add(view);

            UIImageView imageView = new UIImageView();

            imageView.Frame       = new CGRect(0, 0, ProfileWall.Frame.Width + 50, ProfileWall.Frame.Height + 75);
            imageView.Image       = UIImage.FromFile("Polygon_one");
            imageView.ContentMode = UIViewContentMode.ScaleToFill;
            ProfileWall.MaskView  = imageView;

            ProfileImage.Layer.CornerRadius  = ProfileImage.Frame.Width / 2;
            ProfileImage.Layer.MasksToBounds = true;
            ProfileImage.Layer.BorderColor   = UIColor.White.CGColor;
            ProfileImage.Layer.BorderWidth   = 2;

            //Set from CrossSettings classs / Session Variable
            //lblName.Text = CrossSettings.Current.GetValueOrDefault("UserName", "");

            btnFilter.TouchUpInside += (sender, e) =>
            {
                SettingsViewController settingsController = this.Storyboard.InstantiateViewController("SettingsViewController") as SettingsViewController;
                if (settingsController != null)
                {
                    this.NavigationController.PushViewController(settingsController, true);
                }
            };

            btnChangePassword.TouchUpInside += (sender, e) =>
            {
                //new UIAlertView("Click", "Clicked", null, "Ok", null).Show();
                ChangePasswordViewController changePasswordController = this.Storyboard.InstantiateViewController("ChangePasswordViewController") as ChangePasswordViewController;
                if (changePasswordController != null)
                {
                    this.NavigationController.PushViewController(changePasswordController, true);
                }
            };

            btnEditProfileImage.TouchUpInside += (sender, e) =>
            {
                try
                {
                    imagePicker                       = new UIImagePickerController();
                    imagePicker.SourceType            = UIImagePickerControllerSourceType.PhotoLibrary;
                    imagePicker.MediaTypes            = UIImagePickerController.AvailableMediaTypes(UIImagePickerControllerSourceType.PhotoLibrary);
                    imagePicker.FinishedPickingMedia += Handle_FinishedPickingMedia;
                    imagePicker.Canceled             += Handle_Canceled;
                    NavigationController.PresentModalViewController(imagePicker, true);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            };

            //Make Call to API
            GetProfileData();
        }
예제 #23
0
        void LoadDetailViewDesign()
        {
            Xamarin.Themes.BizappTheme.Apply (shareBarButton);
            Xamarin.Themes.BizappTheme.Apply (likeBarButton);
            Xamarin.Themes.BizappTheme.Apply (expandBarButton);
            Xamarin.Themes.BizappTheme.Apply (subContainerView);

            gradientLayer = new CAGradientLayer ();
            gradientLayer.Frame = gradientView.Bounds;

            UIColor lightColor = UIColor.Black.ColorWithAlpha (0);
            UIColor darkColor = UIColor.Black.ColorWithAlpha (0.5f);

            gradientLayer.Colors = new CGColor[] { darkColor.CGColor, lightColor.CGColor };
            gradientView.Layer.InsertSublayer (gradientLayer, 0);
        }
예제 #24
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var gradientLayer = new CAGradientLayer();

            gradientLayer.Colors    = new[] { UIColor.FromRGB(98, 107, 186).CGColor, UIColor.FromRGB(57, 122, 193).CGColor };
            gradientLayer.Locations = new NSNumber[] { 0, 1 };
            gradientLayer.Frame     = new CGRect(0, 0, locationtabHeaderView.Frame.Width + 50, locationtabHeaderView.Frame.Height);
            //gradientLayer.Frame = locationtabHeaderView.Frame;
            locationtabHeaderView.Layer.InsertSublayer(gradientLayer, 0);

            var layout = collectionViewPager.CollectionViewLayout as UICollectionViewFlowLayout;

            layout.ItemSize = new CGSize(UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height - 120);

            var controllers   = new List <UIViewController>();
            var mapController = this.Storyboard.InstantiateViewController("MapViewController") as MapViewController;

            AddChildViewController(mapController);
            controllers.Add(mapController);

            var listViewController = this.Storyboard.InstantiateViewController("MapListViewController") as MapListViewController;

            AddChildViewController(listViewController);
            controllers.Add(listViewController);


            IndicatorView.Hidden       = true;
            btnMapView.BackgroundColor = UIColor.Yellow;
            btnMapView.TouchUpInside  += (sender, e) =>
            {
                ScrollToPosition(0);
                btnListView.BackgroundColor = UIColor.White;
                btnMapView.BackgroundColor  = UIColor.Yellow;
            };

            btnListView.TouchUpInside += (sender, e) =>
            {
                ScrollToPosition(1);
                btnListView.BackgroundColor = UIColor.Yellow;
                btnMapView.BackgroundColor  = UIColor.White;
            };

            var source = new CustomCollectionSource <UIViewController>(controllers, GetCell);

            collectionViewPager.Source = source;
            collectionViewPager.ReloadData();

            collectionViewPager.Delegate = null;

            collectionViewPager.Scrolled += (sender, e) =>
            {
                int position = (int)(collectionViewPager.ContentOffset.X / UIScreen.MainScreen.Bounds.Width);
                if (collectionViewPager.ContentOffset.X % UIScreen.MainScreen.Bounds.Width > (UIScreen.MainScreen.Bounds.Width / 2f))
                {
                    position++;
                }

                //if (position == 1)
                //{
                //    //ShowHelpIfNecessary(TutorialHelper.SchedulesScores);
                //}

                SetButtonColor(position);

                //_lcIndicatorLeading.Constant = collectionViewPager.ContentOffset.X / 2f;
            };
        }
예제 #25
0
        /* Creates the container view here: create the dialog, then add the custom content and buttons */
        private UIView createContainerView()
        {
            var screenSize = CountScreenSize();
            var dialogSize = new CGSize(
                300,
                230
                + kDatePickerDialogDefaultButtonHeight
                + kDatePickerDialogDefaultButtonSpacerHeight);

            // For the black background
            Frame = new CGRect(0, 0, screenSize.Width, screenSize.Height);

            // This is the dialog's container; we attach the custom content and the buttons to this one
            var dialogContainer = new UIView(new CGRect((screenSize.Width - dialogSize.Width) / 2, (screenSize.Height - dialogSize.Height) / 2, dialogSize.Width, dialogSize.Height));

            // First, we style the dialog to match the iOS8 UIAlertView >>>
            var gradient = new CAGradientLayer();

            gradient.Frame  = dialogContainer.Bounds;
            gradient.Colors = new[]
            {
                UIColor.FromRGB(218, 218, 218).CGColor,
                UIColor.FromRGB(233, 233, 233).CGColor,
                UIColor.FromRGB(218, 218, 218).CGColor
            };

            var cornerRadius = kDatePickerDialogCornerRadius;

            gradient.CornerRadius = cornerRadius;
            dialogContainer.Layer.InsertSublayer(gradient, 0);

            dialogContainer.Layer.CornerRadius  = cornerRadius;
            dialogContainer.Layer.BorderColor   = UIColor.FromRGB(198, 198, 198).CGColor;
            dialogContainer.Layer.BorderWidth   = 1;
            dialogContainer.Layer.ShadowRadius  = cornerRadius + 5;
            dialogContainer.Layer.ShadowOpacity = 0.1f;
            dialogContainer.Layer.ShadowOffset  = new CGSize(0 - (cornerRadius + 5) / 2, 0 - (cornerRadius + 5) / 2);
            dialogContainer.Layer.ShadowColor   = UIColor.Black.CGColor;
            dialogContainer.Layer.ShadowPath    = UIBezierPath.FromRoundedRect(dialogContainer.Bounds, dialogContainer.Layer.CornerRadius).CGPath;

            // There is a line above the button
            var lineView = new UIView(new CGRect(0, dialogContainer.Bounds.Size.Height - kDatePickerDialogDefaultButtonHeight - kDatePickerDialogDefaultButtonSpacerHeight, dialogContainer.Bounds.Size.Width, kDatePickerDialogDefaultButtonSpacerHeight));

            lineView.BackgroundColor = UIColor.FromRGB(198, 198, 198);
            dialogContainer.AddSubview(lineView);
            // ˆˆˆ
            //Title
            _titleLabel = new UILabel(new CGRect(10, 10, 280, 30));
            _titleLabel.TextAlignment = UITextAlignment.Center;
            _titleLabel.Font          = UIFont.BoldSystemFontOfSize(17);
            _titleLabel.Text          = _title;
            dialogContainer.AddSubview(_titleLabel);


            _datePicker                  = new UIDatePicker(new CGRect(0, 30, 0, 0));
            _datePicker.Locale           = new NSLocale("es");
            _datePicker.AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin;
            _datePicker.Frame            = new CGRect(_datePicker.Frame.Location, new CGSize(300, _datePicker.Frame.Size.Height));
            _datePicker.Mode             = _datePickerMode;
            _datePicker.Date             = (NSDate)_defaultDate;

            if (_maximumDate.HasValue)
            {
                _datePicker.MaximumDate = (NSDate)_maximumDate.Value;
            }

            if (_minimumDate.HasValue)
            {
                _datePicker.MinimumDate = (NSDate)_minimumDate.Value;
            }

            dialogContainer.AddSubview(_datePicker);
            AddButtonsToView(dialogContainer);
            return(dialogContainer);
        }
예제 #26
0
        public PowerSlider(CGRect frame) : base(frame)
        {
            var layerActiveToDraw = new CALayer();

            layerActiveToDraw.Frame           = new CGRect(0, 0, frame.Width, circleHeight);
            layerActiveToDraw.BackgroundColor = UIColor.Clear.CGColor;

            var gradientLineLayer = new CAGradientLayer();

            gradientLineLayer.Frame      = new CGRect(15, 1, frame.Width - 15, lineHeight);
            gradientLineLayer.Colors     = new CGColor[] { UIColor.FromRGB(255, 121, 4).CGColor, UIColor.FromRGB(255, 22, 5).CGColor };
            gradientLineLayer.EndPoint   = new CGPoint(1, 1);
            gradientLineLayer.StartPoint = new CGPoint(0, 1);

            var activeCircleLayer = new CALayer();

            activeCircleLayer.Frame           = new CGRect(13, 0, circleHeight, circleHeight);
            activeCircleLayer.BackgroundColor = UIColor.FromRGB(255, 117, 4).CGColor;
            activeCircleLayer.CornerRadius    = circleHeight / 2f;
            activeCircleLayer.AddSublayer(gradientLineLayer);

            layerActiveToDraw.AddSublayer(gradientLineLayer);
            layerActiveToDraw.AddSublayer(activeCircleLayer);

            UIGraphics.BeginImageContextWithOptions(new CGSize(frame.Width, circleHeight), false, 0);
            layerActiveToDraw.RenderInContext(UIGraphics.GetCurrentContext());
            var activeLineImage = UIGraphics.GetImageFromCurrentImageContext();

            UIGraphics.EndImageContext();

            var layerInactiveToDraw = new CALayer();

            layerInactiveToDraw.Frame           = new CGRect(0, 0, frame.Width, circleHeight);
            layerInactiveToDraw.BackgroundColor = UIColor.Clear.CGColor;

            var inactiveLineLayer = new CALayer();

            inactiveLineLayer.Frame           = new CGRect(15, 1, frame.Width - 15 - 11, lineHeight);
            inactiveLineLayer.BackgroundColor = Constants.R245G245B245.CGColor;

            var inactiveCircleLayer = new CALayer();

            inactiveCircleLayer.Frame           = new CGRect(frame.Width - circleHeight - 10, 0, circleHeight, circleHeight);
            inactiveCircleLayer.BackgroundColor = Constants.R245G245B245.CGColor;
            inactiveCircleLayer.CornerRadius    = circleHeight / 2f;

            layerInactiveToDraw.AddSublayer(inactiveLineLayer);
            layerInactiveToDraw.AddSublayer(inactiveCircleLayer);

            UIGraphics.BeginImageContextWithOptions(new CGSize(frame.Width, circleHeight), false, 0);
            layerInactiveToDraw.RenderInContext(UIGraphics.GetCurrentContext());
            var inactiveLineImage = UIGraphics.GetImageFromCurrentImageContext();

            UIGraphics.EndImageContext();

            SetMaxTrackImage(inactiveLineImage.CreateResizableImage(UIEdgeInsets.Zero), UIControlState.Normal);
            SetMinTrackImage(activeLineImage.CreateResizableImage(UIEdgeInsets.Zero), UIControlState.Normal);

            var thumbLayer = new CALayer();

            thumbLayer.Frame           = new CGRect(0, 0, 26, 26);
            thumbLayer.BackgroundColor = UIColor.FromRGB(255, 47, 5).CGColor;
            thumbLayer.CornerRadius    = 26 / 2f;

            UIGraphics.BeginImageContextWithOptions(new CGSize(26, 26), false, 0);
            thumbLayer.RenderInContext(UIGraphics.GetCurrentContext());
            var thumbImage = UIGraphics.GetImageFromCurrentImageContext();

            UIGraphics.EndImageContext();

            SetThumbImage(thumbImage, UIControlState.Normal);
            SetThumbImage(thumbImage, UIControlState.Selected);
            SetThumbImage(thumbImage, UIControlState.Highlighted);
        }
예제 #27
0
        protected override void OnAttached()
        {
            var view = Control ?? Container;

            var effect = Element.Effects.OfType <GradientEffect>()?.FirstOrDefault(e => e is GradientEffect);

            if (effect == null)
            {
                return;
            }

            CGColor[] colors = new CGColor[]
            {
                effect.StartColor.ToCGColor(),
                      effect.EndColor.ToCGColor()
            };

            var gradientLayer = new CAGradientLayer();

            switch (effect.Direction)
            {
            default:
            case GradientDirection.ToRight:
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                break;

            case GradientDirection.ToLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0.5);
                gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                break;

            case GradientDirection.ToTop:
                gradientLayer.StartPoint = new CGPoint(0.5, 0);
                gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                break;

            case GradientDirection.ToBottom:
                gradientLayer.StartPoint = new CGPoint(0.5, 1);
                gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                break;

            case GradientDirection.ToTopLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0);
                gradientLayer.EndPoint   = new CGPoint(0, 1);
                break;

            case GradientDirection.ToTopRight:
                gradientLayer.StartPoint = new CGPoint(0, 1);
                gradientLayer.EndPoint   = new CGPoint(1, 0);
                break;

            case GradientDirection.ToBottomLeft:
                gradientLayer.StartPoint = new CGPoint(1, 1);
                gradientLayer.EndPoint   = new CGPoint(0, 0);
                break;

            case GradientDirection.ToBottomRight:
                gradientLayer.StartPoint = new CGPoint(0, 0);
                gradientLayer.EndPoint   = new CGPoint(1, 1);
                break;
            }

            if (view.Layer.Bounds.IsEmpty)
            {
                view.BackgroundColor = effect.StartColor.ToUIColor();
            }
            else
            {
                view.Layer.MasksToBounds = true;

                gradientLayer.Frame  = view.Bounds;
                gradientLayer.Colors = colors;

                view.Layer.InsertSublayer(gradientLayer, 0);
            }
        }
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            var element = (Element as GradientStackLayout);

            var colors = new CGColor[] {
                element.GradientFromColor.ToCGColor(),
                element.GradientToColor.ToCGColor()
            };

            var gradientLayer = new CAGradientLayer();

            switch (element.GradientDirection)
            {
            default:
            case GradientStyle.ToRight:
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                break;

            case GradientStyle.ToLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0.5);
                gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                break;

            case GradientStyle.ToTop:
                gradientLayer.StartPoint = new CGPoint(0.5, 0);
                gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                break;

            case GradientStyle.ToBottom:
                gradientLayer.StartPoint = new CGPoint(0.5, 1);
                gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                break;

            case GradientStyle.ToTopLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0);
                gradientLayer.EndPoint   = new CGPoint(0, 1);
                break;

            case GradientStyle.ToTopRight:
                gradientLayer.StartPoint = new CGPoint(0, 1);
                gradientLayer.EndPoint   = new CGPoint(1, 0);
                break;

            case GradientStyle.ToBottomLeft:
                gradientLayer.StartPoint = new CGPoint(1, 1);
                gradientLayer.EndPoint   = new CGPoint(0, 0);
                break;

            case GradientStyle.ToBottomRight:
                gradientLayer.StartPoint = new CGPoint(0, 0);
                gradientLayer.EndPoint   = new CGPoint(1, 1);
                break;
            }

            gradientLayer.Frame  = rect;
            gradientLayer.Colors = colors;

            int gradientIndex = GetHighestGradientLayerIndex();

            NativeView?.Layer?.InsertSublayer(gradientLayer, gradientIndex);
        }
예제 #29
0
        //public override void Draw(CGRect rect)
        //{
        //    base.Draw(rect);
        //}

        public override void Draw(CoreGraphics.CGRect rect)
        {
            base.Draw(rect);

            CustomLayout  stack         = (CustomLayout)this.Element;
            CGColor       startColor    = stack.StartColor.ToCGColor();
            CGColor       endColor      = stack.EndColor.ToCGColor();
            GradientStyle gradientStyle = stack.GradientDirection;
            nfloat        cornerRadius  = 0.0f;

            /*
             #region for Vertical Gradient
             *
             * var gradientLayer = new CAGradientLayer();
             *
             #endregion
             *
             #region for Horizontal Gradient
             *
             * //var gradientLayer = new CAGradientLayer()
             * //{
             * //  StartPoint = new CGPoint(0, 0.5),
             * //  EndPoint = new CGPoint(1, 0.5)
             * //};
             *
             #endregion
             */

            try
            {
                //if(stack.HasBorderColor == true)
                //{

                //}
                //else if(stack.BorderColor != null)
                //{

                //}
                if (stack.HasBorderColor == true && stack.BorderColor.ToCGColor() != null)
                {
                    //double min = Math.Min(Element.Width, Element.Height);
                    //Control.Layer.CornerRadius = (float)(min / 2.0);
                    //Control.Layer.MasksToBounds = false;
                    //Control.Layer.BorderColor = Color.White.ToCGColor();
                    //Control.Layer.BorderWidth = 1;
                    //Control.ClipsToBounds = true;

                    double min = Math.Min(Element.Width, Element.Height);
                    this.Layer.CornerRadius  = (float)(min / 2.0);
                    this.Layer.MasksToBounds = false;
                    this.Layer.BorderColor   = stack.BorderColor.ToCGColor();
                    this.Layer.BorderWidth   = 1;
                    this.ClipsToBounds       = true;
                }
                else
                {
                }
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                //Debug.WriteLine("Unable to create circle image: " + ex);
            }

            var gradientLayer = new CAGradientLayer();

            if (gradientStyle == GradientStyle.Vertical)
            {
            }
            else
            {
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
            }

            try
            {
                if (stack.CornerWRT == CornerRadiusReference.WRTHeightRequest && stack.CornerRadius == 0)
                {
                    cornerRadius = (float)(stack.HeightRequest / 2);
                }
                else if (stack.CornerWRT == CornerRadiusReference.WRTWidthRequest && stack.CornerRadius == 0)
                {
                    cornerRadius = (float)(stack.WidthRequest / 2);
                }
                else
                {
                    cornerRadius = (float)(stack.CornerRadius);
                }
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
            }

            gradientLayer.Frame  = rect;
            gradientLayer.Colors = new CGColor[] { startColor, endColor };
            gradientLayer.ModelLayer.CornerRadius = cornerRadius;//(float)(stack.CornerRadius);
            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
예제 #30
0
		private static UIImage GenerateReflection(RectangleF canvasFrame, UIImage canvas, float reflectionY)
		{
			var reflectionHeight = Util.IsPad() ? 85 : 60;
			reflectionHeight = Util.IsPortrait() ? reflectionHeight : reflectionHeight - 20;
			
			// Build reflection and crop the upper image
			var reflection0 = BuildCoverFlow(canvas, 1.0f);
			var areaWithoutOriginal = new RectangleF(0, canvasFrame.Height, canvasFrame.Width, canvasFrame.Height);
			var reflection1 = ImageHelper.Crop(reflection0, areaWithoutOriginal);
			var reflection2 = ImageHelper.Crop(reflection1, new RectangleF(0, 0, canvasFrame.Width, reflectionHeight));	
			reflection0.Dispose();
			reflection1.Dispose();			
			
			var reflectionFrame = new RectangleF(canvasFrame.X, reflectionY, reflection2.Size.Width, reflection2.Size.Height);
			
			// Create the gradient used for the opacity mask (mask image must have no alpha channel, black is opaque, white is transparent)
			var black = UIColor.Black.CGColor;
			var white = UIColor.White.CGColor;
			CAGradientLayer gradient = new CAGradientLayer();
			gradient.Frame = reflectionFrame;
			gradient.Colors = new CGColor[] { black, white, white };
			
			// Mask the reflection image
			var maskImage = ImageHelper.ImageFromLayer(gradient);
			gradient.Dispose();
			
			var reflection3 = ImageHelper.MaskImage(reflection2, maskImage);
			reflection2.Dispose();
			maskImage.Dispose();

			return reflection3;
		}
        /*
         *      MPMoviePlayerController _player;
         *      private List<NSObject> _observers = new List<NSObject>();
         *      protected override void OnElementChanged(ElementChangedEventArgs<CustomVideoSlider> e)
         *      {
         *          base.OnElementChanged(e);
         *          if (e.NewElement != null)
         *          {
         *              if (base.Control == null)
         *              {
         *                  _player = new MPMoviePlayerController();
         *                  _player.ScalingMode = MPMovieScalingMode.AspectFit;
         *
         *                  _player.ShouldAutoplay = true;
         *                  _player.ControlStyle = MPMovieControlStyle.None;
         *                  _player.MovieControlMode=MPMovieControlMode.Hidden;
         *                  _player.View.Frame = this.Bounds;
         *                  _player.BackgroundColor = UIColor.Clear;
         *                  base.SetNativeControl(_player.View);
         *                  var center = NSNotificationCenter.DefaultCenter;
         *                 // _observers.Add(center.AddObserver((NSString)"UIDeviceOrientationDidChangeNotification", DeviceRotated));
         *                  _observers.Add(center.AddObserver(MPMoviePlayerController.PlaybackStateDidChangeNotification, OnLoadStateChanged));
         *                  _observers.Add(center.AddObserver(MPMoviePlayerController.PlaybackDidFinishNotification, OnPlaybackComplete));
         *                  _observers.Add(center.AddObserver(MPMoviePlayerController.WillExitFullscreenNotification, OnExitFullscreen));
         *                  _observers.Add(center.AddObserver(MPMoviePlayerController.WillEnterFullscreenNotification, OnEnterFullscreen));
         *
         *
         *
         *                  bootomToolbarView = new UIView()
         *                  {
         *                      TranslatesAutoresizingMaskIntoConstraints = false,
         *                  };
         *
         *                  bootomToolbarView.AddObserver(this, (NSString)"bounds", NSKeyValueObservingOptions.New, IntPtr.Zero);
         *
         *                  gradientLayer = new CAGradientLayer();
         *                  //gradientLayer.Frame = Bounds;
         *                  gradientLayer.Colors = new CGColor[] { UIColor.Clear.CGColor, UIColor.Orange.CGColor };
         *                  gradientLayer.Locations= new NSNumber[2] {new NSNumber(0.7),new NSNumber(1.2)};
         *                  bootomToolbarView.Layer.AddSublayer(gradientLayer);
         *                  this.InsertSubviewAbove(bootomToolbarView, _player.View);
         *
         *                  labelTimeLeft = new UILabel()
         *                  {
         *                      TranslatesAutoresizingMaskIntoConstraints = false,
         *                      Text = string.Format("{0:mm\\:ss}", TimeSpan.FromMilliseconds(slider.FileDuration ?? 0)),
         *                      TextColor = UIColor.White
         *                  };
         *                  bootomToolbarView.AddSubview(labelTimeLeft);
         *
         *                  labelTimePlayed = new UILabel()
         *                  {
         *                      TranslatesAutoresizingMaskIntoConstraints = false,
         *                      Text = "00:00",
         *                      TextColor = UIColor.White
         *                  };
         *
         *                  bootomToolbarView.AddSubview(labelTimePlayed);
         *
         *                  seekBar = new UISlider()
         *                  {
         *                      TranslatesAutoresizingMaskIntoConstraints = false,
         *                  MaximumTrackTintColor = Color.LightGray.ToUIColor(),
         *                  MinimumTrackTintColor = Color.White.ToUIColor(),
         *                  ThumbTintColor = Color.FromHex("#827DCE").ToUIColor()
         *
         *              };
         *
         *                  seekBar.TouchDown += Control_TouchDown;
         *                  seekBar.TouchUpInside += Control_TouchUpInside;
         *
         *                  bootomToolbarView.AddSubview(seekBar);
         *
         *                  bootomToolbarView.RightAnchor.ConstraintEqualTo(RightAnchor).Active = true;
         *                  bootomToolbarView.LeftAnchor.ConstraintEqualTo(LeftAnchor).Active = true;
         *                  bootomToolbarView.BottomAnchor.ConstraintEqualTo(BottomAnchor).Active = true;
         *                  bootomToolbarView.HeightAnchor.ConstraintEqualTo(40).Active = true;
         *
         *
         *                  labelTimeLeft.RightAnchor.ConstraintEqualTo(bootomToolbarView.RightAnchor, -10).Active = true;
         *                  labelTimeLeft.BottomAnchor.ConstraintEqualTo(bootomToolbarView.BottomAnchor, -10).Active = true;
         *                  labelTimeLeft.WidthAnchor.ConstraintEqualTo(50).Active = true;
         *                  labelTimeLeft.HeightAnchor.ConstraintEqualTo(20).Active = true;
         *
         *                  labelTimePlayed.LeftAnchor.ConstraintEqualTo(bootomToolbarView.LeftAnchor, 10).Active = true;
         *                  labelTimePlayed.BottomAnchor.ConstraintEqualTo(bootomToolbarView.BottomAnchor, -10).Active = true;
         *                  labelTimePlayed.WidthAnchor.ConstraintEqualTo(50).Active = true;
         *                  labelTimePlayed.HeightAnchor.ConstraintEqualTo(20).Active = true;
         *
         *                  seekBar.LeftAnchor.ConstraintEqualTo(labelTimePlayed.RightAnchor, 10).Active = true;
         *                  seekBar.RightAnchor.ConstraintEqualTo(labelTimeLeft.LeftAnchor, -10).Active = true;
         *                  seekBar.BottomAnchor.ConstraintEqualTo(bootomToolbarView.BottomAnchor, -10).Active = true;
         *                  seekBar.HeightAnchor.ConstraintEqualTo(20).Active = true;
         *
         *                  ToggleFullscreen();
         *              }
         *          }
         *          updateVideoPath();
         *          updateFullscreen();
         *      }
         *      private void DeviceRotated(NSNotification notification)
         *      {
         *          ToggleFullscreen();
         *      }
         *
         *      private void OnLoadStateChanged(NSNotification notification)
         *      {
         *
         *      }
         *
         *      private void OnPlaybackComplete(NSNotification notification) { }
         *
         *      private void OnExitFullscreen(NSNotification notification) { }
         *
         *      private void OnEnterFullscreen(NSNotification notification) { }
         *
         *      private void ToggleFullscreen()
         *      {
         *          _player.ScalingMode = MPMovieScalingMode.None;
         *          switch (UIDevice.CurrentDevice.Orientation)
         *          {
         *              case UIDeviceOrientation.Portrait:
         *                  _player?.SetFullscreen(false, true);
         *                  break;
         *              case UIDeviceOrientation.PortraitUpsideDown:
         *                  _player?.SetFullscreen(false, true);
         *                  break;
         *              case UIDeviceOrientation.LandscapeLeft:
         *                  _player?.SetFullscreen(true, true);
         *                  break;
         *              case UIDeviceOrientation.LandscapeRight:
         *                  _player?.SetFullscreen(true, true);
         *                  break;
         *          }
         *          _player.View.SetNeedsLayout();
         *          _player.View.SetNeedsDisplay();
         *      }
         *
         *      protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
         *      {
         *          base.OnElementPropertyChanged(sender, e);
         *          if (e.PropertyName == CustomVideoSlider.FileUrlProperty.PropertyName) updateVideoPath();
         *         // if (e.PropertyName == CustomVideoSlider.FullscreenProperty.PropertyName) updateFullscreen();
         *      }
         *
         *      public override void MovedToSuperview()
         *      {
         *          base.MovedToSuperview();
         *      }
         *
         *      private void updateVideoPath()
         *      {
         *          if (_player == null) return;
         *         // _player.ControlStyle = MPMovieControlStyle.Embedded;
         *          _player.ShouldAutoplay = true;
         *          _player.ContentUrl = !string.IsNullOrWhiteSpace(this.Element.FileUrl) ? NSUrl.FromString(this.Element.FileUrl) : null;
         *          _player.PrepareToPlay();
         *      }
         *
         *      private void updateFullscreen()
         *      {
         *          if (_player == null) return;
         *          _player.SetFullscreen(true, true);
         *          _player.View.SetNeedsLayout();
         *          _player.View.SetNeedsDisplay();
         *      }
         *
         *      protected override void Dispose(bool disposing)
         *      {
         *          if (this._player != null)
         *          {
         *              this._player.Dispose();
         *              this._player = null;
         *          }
         *          base.Dispose(disposing);
         *      }
         *
         */
        protected override void OnElementChanged(ElementChangedEventArgs <CustomVideoPlayer> e)
        {
            base.OnElementChanged(e);

            if (Control == null)
            {
                //seekBar = new UISlider();
                //SetNativeControl(seekBar);
                mainView = new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                };
                SetNativeControl(mainView);
            }

            if (e.OldElement != null)
            {
                videoPlayerAV.RemoveObserver(this, (NSString)"videoBounds");
                bootomToolbarView.RemoveObserver(this, (NSString)"bounds");
                UIApplication.SharedApplication.SetStatusBarHidden(false, true);
                StopPlayingAction(false);
                playerItem.RemoveObserver(this, (NSString)"loadedTimeRanges");
                playerItem.Dispose();
                player.Dispose();

                Console.WriteLine("Video Finished 1");
                //playerItem = null;
                //player = null;
            }

            if (e.NewElement != null)
            {
                slider = e.NewElement;

                _fitSize = Control.Bounds.Size;
                // except if your not running iOS 7... then it fails...
                if (_fitSize.Width <= 0 || _fitSize.Height <= 0)
                {
                    _fitSize = new SizeF(22, 22); // Per the glorious documentation known as the SDK docs
                }
                slider.CommandImageFileName = "audioPlay.png";
                slider.CommandText          = "Play";
                slider.StopPlayingAction    = StopPlayingAction;

                //seekBar = new UISlider();
                //seekBar.MaximumTrackTintColor = Color.LightGray.ToUIColor();
                //seekBar.MinimumTrackTintColor = Color.White.ToUIColor();
                //seekBar.ThumbTintColor = Color.FromHex("#827DCE").ToUIColor();
                //seekBar.Continuous = false;



                // Control.ScaleY = 5;

                if (slider.FileUrl != null)
                {
                    // playerItem = AVPlayerItem.FromUrl(NSUrl.FromString("https://s3.amazonaws.com/kargopolov/kukushka.mp3"));// (asset);
                    playerItem = AVPlayerItem.FromUrl(NSUrl.FromString(slider.FileUrl));// (asset);
                    //playerItem = AVPlayerItem.FromUrl(NSUrl.FromString("https://mindcorners.blob.core.windows.net/post-attachment-videos/6412cb27-414a-435b-a480-66af5e935cb8.mov?sv=2017-04-17&sr=b&sig=gd3mn1Gai7QZHoSpx%2Fi8x%2FHfnOutACOV7WvsVblywk0%3D&se=2017-10-11T15%3A05%3A15Z&sp=r"));
                    playerItem.AddObserver(this, (NSString)"loadedTimeRanges", NSKeyValueObservingOptions.New, IntPtr.Zero);

                    player = new AVPlayer(playerItem);


                    //player.AddObserver(this, "loadedTimeRanges", NSKeyValueObservingOptions.New, null);
                    //playerLayer = AVPlayerLayer.FromPlayer(player);
                    videoPlayerAV = new AVPlayerViewController();
                    videoPlayerAV.View.BackgroundColor  = UIColor.Clear;
                    videoPlayerAV.ShowsPlaybackControls = false;


                    videoPlayerAV.AddObserver(this, (NSString)"videoBounds", NSKeyValueObservingOptions.New, IntPtr.Zero);
                    videoPlayerAV.View.Frame = Control.Frame;
                    videoPlayerAV.Player     = player;

                    UITapGestureRecognizer tapGesture = new UITapGestureRecognizer(OnVideoTap);
                    videoView = new UIView()
                    {
                        BackgroundColor = UIColor.Clear
                    };
                    // videoView.Bounds = new CGRect(0,0,100,100);
                    videoView.AddGestureRecognizer(tapGesture);
                    //videoPlayerAV.View.AddSubview(videoView);


                    //button.CenterYAnchor.ConstraintEqualTo(videoPlayerAV.ContentOverlayView.CenterYAnchor).Active = true;
                    //button.WidthAnchor.ConstraintEqualTo(50).Active = true;
                    //button.HeightAnchor.ConstraintEqualTo(50).Active = true;



                    //videoPlayerAV.VideoGravity = AVLayerVideoGravity.ResizeAspect;

                    mainView.AddSubview(videoPlayerAV.View);
                    mainView.AddSubview(videoView);

                    videoView.TopAnchor.ConstraintEqualTo(mainView.TopAnchor).Active       = true;
                    videoView.BottomAnchor.ConstraintEqualTo(mainView.BottomAnchor).Active = true;
                    videoView.LeftAnchor.ConstraintEqualTo(mainView.LeftAnchor).Active     = true;
                    videoView.RightAnchor.ConstraintEqualTo(mainView.RightAnchor).Active   = true;
                    videoView.WidthAnchor.ConstraintEqualTo(mainView.WidthAnchor).Active   = true;
                    videoView.HeightAnchor.ConstraintEqualTo(mainView.HeightAnchor).Active = true;


                    button = new UIButton()
                    {
                        BackgroundColor = UIColor.Clear, TitleLabel = { Text = slider.CommandText }, TranslatesAutoresizingMaskIntoConstraints = false,
                    };
                    button.TouchUpInside += Button_TouchUpInside;

                    videoView.AddSubview(button);
                    button.CenterXAnchor.ConstraintEqualTo(videoView.CenterXAnchor).Active = true;
                    button.CenterYAnchor.ConstraintEqualTo(videoView.CenterYAnchor).Active = true;
                    //button.CenterXAnchor.ConstraintEqualTo(videoPlayerAV.View.CenterXAnchor).Active = true;
                    //button.CenterYAnchor.ConstraintEqualTo(videoPlayerAV.View.CenterYAnchor).Active = true;
                    button.WidthAnchor.ConstraintEqualTo(50).Active  = true;
                    button.HeightAnchor.ConstraintEqualTo(50).Active = true;



                    var center = NSNotificationCenter.DefaultCenter;
                    NSNotificationCenter.DefaultCenter.AddObserver((NSString)"UIDeviceOrientationDidChangeNotification", DeviceRotated);



                    //mainView.Layer.AddSublayer(playerLayer);
                    if (slider.AutoPlay)
                    {
                        UpdatePlaying();
                    }
                    else
                    {
                        {
                            slider.CommandImageFileName = "audioPlay.png";
                            slider.CommandText          = "Play";

                            button.Hidden = false;
                            //button.SetTitle("paused", UIControlState.Normal);
                            player.Pause();
                            isPlaying = false;
                        }

                        button.SetImage(UIImage.FromFile(slider.CommandImageFileName), UIControlState.Normal);
                    }
                }



                bootomToolbarView = new UIView()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                };

                bootomToolbarView.AddObserver(this, (NSString)"bounds", NSKeyValueObservingOptions.New, IntPtr.Zero);

                gradientLayer = new CAGradientLayer();
                //gradientLayer.Frame = Bounds;
                gradientLayer.Colors    = new CGColor[] { UIColor.Clear.CGColor, UIColor.Black.CGColor };
                gradientLayer.Locations = new NSNumber[2] {
                    new NSNumber(0.7), new NSNumber(1.2)
                };
                bootomToolbarView.Layer.AddSublayer(gradientLayer);
                mainView.InsertSubviewAbove(bootomToolbarView, videoPlayerAV.View);

                labelTimeLeft = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text      = string.Format("{0:mm\\:ss}", TimeSpan.FromMilliseconds(slider.FileDuration ?? 0)),
                    TextColor = UIColor.White
                };
                bootomToolbarView.AddSubview(labelTimeLeft);

                labelTimePlayed = new UILabel()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    Text      = "00:00",
                    TextColor = UIColor.White
                };

                bootomToolbarView.AddSubview(labelTimePlayed);

                seekBar = new UISlider()
                {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    MaximumTrackTintColor = Color.LightGray.ToUIColor(),
                    MinimumTrackTintColor = Color.White.ToUIColor(),
                    ThumbTintColor        = Color.FromHex("#827DCE").ToUIColor()
                };

                seekBar.SetThumbImage(UIImage.FromFile("audioTint.png"), UIControlState.Normal);

                seekBar.TouchDown     += Control_TouchDown;
                seekBar.TouchUpInside += Control_TouchUpInside;

                bootomToolbarView.AddSubview(seekBar);

                //videoPlayerAV.View.RightAnchor.ConstraintEqualTo(RightAnchor).Active = true;
                //videoPlayerAV.View.LeftAnchor.ConstraintEqualTo(LeftAnchor).Active = true;
                //videoPlayerAV.View.BottomAnchor.ConstraintEqualTo(BottomAnchor).Active = true;
                //videoPlayerAV.View.TopAnchor.ConstraintEqualTo(TopAnchor).Active = true;


                bootomToolbarView.RightAnchor.ConstraintEqualTo(RightAnchor).Active   = true;
                bootomToolbarView.LeftAnchor.ConstraintEqualTo(LeftAnchor).Active     = true;
                bootomToolbarView.BottomAnchor.ConstraintEqualTo(BottomAnchor).Active = true;
                bootomToolbarView.HeightAnchor.ConstraintEqualTo(40).Active           = true;


                labelTimeLeft.RightAnchor.ConstraintEqualTo(bootomToolbarView.RightAnchor, -10).Active   = true;
                labelTimeLeft.BottomAnchor.ConstraintEqualTo(bootomToolbarView.BottomAnchor, -10).Active = true;
                labelTimeLeft.WidthAnchor.ConstraintEqualTo(50).Active  = true;
                labelTimeLeft.HeightAnchor.ConstraintEqualTo(20).Active = true;

                labelTimePlayed.LeftAnchor.ConstraintEqualTo(bootomToolbarView.LeftAnchor, 10).Active      = true;
                labelTimePlayed.BottomAnchor.ConstraintEqualTo(bootomToolbarView.BottomAnchor, -10).Active = true;
                labelTimePlayed.WidthAnchor.ConstraintEqualTo(50).Active  = true;
                labelTimePlayed.HeightAnchor.ConstraintEqualTo(20).Active = true;

                seekBar.LeftAnchor.ConstraintEqualTo(labelTimePlayed.RightAnchor, 10).Active       = true;
                seekBar.RightAnchor.ConstraintEqualTo(labelTimeLeft.LeftAnchor, -10).Active        = true;
                seekBar.BottomAnchor.ConstraintEqualTo(bootomToolbarView.BottomAnchor, -10).Active = true;
                seekBar.HeightAnchor.ConstraintEqualTo(20).Active = true;



                mainView.RightAnchor.ConstraintEqualTo(RightAnchor).Active = true;
                mainView.LeftAnchor.ConstraintEqualTo(LeftAnchor).Active   = true;
                // mainView.BottomAnchor.ConstraintEqualTo(BottomAnchor).Active = true;
                mainView.TopAnchor.ConstraintEqualTo(TopAnchor).Active = true;

                // bootomToolbarView = new UIView();
                // //bootomToolbarView.BackgroundColor =  UIColor.Orange;
                // CAGradientLayer gradientLayer = new CAGradientLayer();
                // gradientLayer.Frame = bootomToolbarView.Frame;
                // gradientLayer.Colors = new CGColor[] {UIColor.Clear.CGColor, UIColor.Orange.CGColor};
                // bootomToolbarView.Layer.AddSublayer(gradientLayer);
                // //bootomToolbarView.BackgroundColor = new CGGradient(CGColorSpace.CreateAcesCGLinear(), new CGColor[] {UIColor.Clear.CGColor, UIColor.Black.CGColor });
                // labelTimePlayed = new UILabel();
                //// labelTimePlayed.Frame = new CGRect(0,10,50,20);
                // labelTimePlayed.Text = "00:00";
                // labelTimePlayed.TextColor = UIColor.White;

                // //seekBar.Frame = new CGRect(50, 10, 100, 20);

                // labelTimeLeft = new UILabel();
                // //labelTimeLeft.Frame = new CGRect(150, 10, 50, 20);
                // labelTimeLeft.Text = "00:00";
                // labelTimeLeft.Text = string.Format("{0:mm\\:ss}", TimeSpan.FromMilliseconds(slider.FileDuration ?? 0));
                // labelTimeLeft.TextColor = UIColor.White;


                // //bootomToolbarView.Frame = new CGRect(0, 10, 200, 20);
                // bootomToolbarView.AddSubview(labelTimePlayed);
                // bootomToolbarView.InsertSubviewAbove(labelTimeLeft, labelTimePlayed);
                // bootomToolbarView.InsertSubviewAbove(seekBar, labelTimeLeft);
                // mainView.InsertSubviewAbove(bootomToolbarView, videoPlayerAV.View);



                //playerLayer = AVPlayerLayer.FromPlayer(player);
                UIApplication.SharedApplication.SetStatusBarHidden(true, true);
            }

            //seekBar.TouchDown += Control_TouchDown;
            //seekBar.TouchUpInside += Control_TouchUpInside;
        }
        private void DrawBackground()
        {
            var pancake    = Element as PancakeView;
            var cornerPath = new UIBezierPath();

            cornerPath.AddArc(new CGPoint((float)Bounds.X + Bounds.Width - _topRight, (float)Bounds.Y + _topRight), _topRight, (float)(Math.PI * 1.5), (float)Math.PI * 2, true);
            cornerPath.AddArc(new CGPoint((float)Bounds.X + Bounds.Width - _bottomRight, (float)Bounds.Y + Bounds.Height - _bottomRight), _bottomRight, 0, (float)(Math.PI * .5), true);
            cornerPath.AddArc(new CGPoint((float)Bounds.X + _bottomLeft, (float)Bounds.Y + Bounds.Height - _bottomLeft), _bottomLeft, (float)(Math.PI * .5), (float)Math.PI, true);
            cornerPath.AddArc(new CGPoint((float)Bounds.X + _topLeft, (float)Bounds.Y + _topLeft), (float)_topLeft, (float)Math.PI, (float)(Math.PI * 1.5), true);

            // The layer used to mask other layers we draw on the background.
            var maskLayer = new CAShapeLayer
            {
                Frame = Bounds,
                Path  = cornerPath.CGPath
            };

            _actualView.Layer.Mask          = maskLayer;
            _actualView.Layer.MasksToBounds = true;

            if ((pancake.BackgroundGradientStartColor != default(Color) && pancake.BackgroundGradientEndColor != default(Color)) || (pancake.BackgroundGradientStops != null && pancake.BackgroundGradientStops.Any()))
            {
                var angle = pancake.BackgroundGradientAngle / 360.0;

                // Calculate the new positions based on angle between 0-360.
                var a = Math.Pow(Math.Sin(2 * Math.PI * ((angle + 0.75) / 2)), 2);
                var b = Math.Pow(Math.Sin(2 * Math.PI * ((angle + 0.0) / 2)), 2);
                var c = Math.Pow(Math.Sin(2 * Math.PI * ((angle + 0.25) / 2)), 2);
                var d = Math.Pow(Math.Sin(2 * Math.PI * ((angle + 0.5) / 2)), 2);

                // Create a gradient layer that draws our background.
                var gradientLayer = new CAGradientLayer
                {
                    Frame      = Bounds,
                    StartPoint = new CGPoint(1 - a, b),
                    EndPoint   = new CGPoint(1 - c, d),
                };

                if (pancake.BackgroundGradientStops != null)
                {
                    // A range of colors is given. Let's add them.
                    var orderedStops = pancake.BackgroundGradientStops.OrderBy(x => x.Offset).ToList();
                    gradientLayer.Colors    = orderedStops.Select(x => x.Color.ToCGColor()).ToArray();
                    gradientLayer.Locations = orderedStops.Select(x => new NSNumber(x.Offset)).ToArray();
                }
                else
                {
                    // Only two colors provided, use that.
                    gradientLayer.Colors = new CGColor[] { pancake.BackgroundGradientStartColor.ToCGColor(), pancake.BackgroundGradientEndColor.ToCGColor() };
                }

                // If there is already a gradient background layer, remove it before inserting.
                if (_actualView.Layer.Sublayers == null || (_actualView.Layer.Sublayers != null && !_actualView.Layer.Sublayers.Any(x => x.GetType() == typeof(CAGradientLayer))))
                {
                    // There's no gradient layer yet, insert it.
                    _actualView.Layer.InsertSublayer(gradientLayer, 0);
                }
                else
                {
                    // Remove the current gradient layer and insert it again.
                    var gradLayer = _actualView.Layer.Sublayers.FirstOrDefault(x => x.GetType() == typeof(CAGradientLayer));

                    if (gradLayer != null)
                    {
                        gradLayer.RemoveFromSuperLayer();
                    }

                    _actualView.Layer.InsertSublayer(gradientLayer, 0);
                }
            }
            else
            {
                // Create a shape layer that draws our background.
                var shapeLayer = new CAShapeLayer
                {
                    Frame         = Bounds,
                    Path          = cornerPath.CGPath,
                    MasksToBounds = true,
                    FillColor     = _colorToRender.CGColor
                };

                // If there is already a background layer, remove it before inserting.
                if (_actualView.Layer.Sublayers == null || (_actualView.Layer.Sublayers != null && !_actualView.Layer.Sublayers.Any(x => x.GetType() == typeof(CAShapeLayer))))
                {
                    // There's no background layer yet, insert it.
                    _actualView.Layer.InsertSublayer(shapeLayer, 0);
                }
                else
                {
                    // Remove the current background layer and insert it again.
                    var gradLayer = _actualView.Layer.Sublayers.FirstOrDefault(x => x.GetType() == typeof(CAShapeLayer));

                    if (gradLayer != null)
                    {
                        gradLayer.RemoveFromSuperLayer();
                    }

                    _actualView.Layer.InsertSublayer(shapeLayer, 0);
                }
            }
        }
        private UIView AddShadowToView(UIView view, bool left)
        {
            // create a view with the same frame
            var viewWithShadow = new UIView (view.Frame);

            // create a shadow
            var shadowView = new UIView (viewWithShadow.Bounds);

            var colors = new CGColor[] {
                UIColor.FromWhiteAlpha(0f, 0f).CGColor,
                UIColor.FromWhiteAlpha(0f, 1f).CGColor
            };

            var gradient = new CAGradientLayer () {
                Frame = shadowView.Bounds,
                Colors = colors
            };

            gradient.StartPoint = new CGPoint (Reverse ? 0f : 1f, Reverse ? 0.2f : 0f);
            gradient.EndPoint = new CGPoint (Reverse ? 1f : 0f, Reverse ? 0f : 1f);
            shadowView.Layer.InsertSublayer (gradient, 1);

            // add the original view into our new view
            view.Frame = view.Bounds;
            viewWithShadow.AddSubview (view);

            // place the shadow on top
            viewWithShadow.AddSubview (shadowView);

            return viewWithShadow;
        }
예제 #34
0
        // Customize the appearance of table view cells.
        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            mainItem cell = tableView.DequeueReusableCell(cellIdentifier) as mainItem;

            if (cell == null)
            {
                cell = new mainItem(cellIdentifier, controller.UserInterfaceIdiomIsPhoneProp);

                //cell.controller = controller as UIDetail;



                UIView viewTbl = new UIView(cell.Bounds);
                //viewTbl.Layer.BorderWidth = 0.5f;
                //viewTbl.Layer.BorderColor = UIColor.FromRGB (102, 153, 173).CGColor;
                viewTbl.BackgroundColor     = UIColor.Clear;
                viewTbl.BackgroundColor     = UIColor.White;
                viewTbl.Layer.MasksToBounds = true;
                //viewTbl.Layer.CornerRadius = 5;
                //CAT
                //255, 255, 255,
                //248, 248, 248,
                //238, 238, 238,
                //229, 229, 229,
                //220, 220, 220
                //POS
                //255,255,255,
                //255,255,255,
                //255,255,255,
                //248,248,248,
                //234,234,234,

                var oGradienttblMain = new CAGradientLayer();
                oGradienttblMain.BorderWidth = 0f;

                //oGradienttblMain.CornerRadius  = 3;
                oGradienttblMain.Frame  = new System.Drawing.RectangleF(0, 0, 1024, 51);
                oGradienttblMain.Colors = new CGColor[] {
                    //20130628
                    UIColor.FromRGB(255, 255, 255).CGColor,
                    UIColor.FromRGB(248, 248, 248).CGColor,
                    UIColor.FromRGB(238, 238, 238).CGColor,
                    UIColor.FromRGB(229, 229, 229).CGColor,
                    UIColor.FromRGB(220, 220, 220).CGColor
                };
                viewTbl.Layer.InsertSublayer(oGradienttblMain, 0);                 // .AddSublayer (oGradient);

                //viewTbl.Layer.BorderWidth = 0.2f;

                cell.BackgroundView = viewTbl;
            }

            cell.userMember = list [indexPath.Row];
            //if (indexPath.Section == 2)
            if (indexPath.Row == 0)
            {
                cell.drawHeadeLine = true;
            }
            cell.UpdateCell(list [indexPath.Row].name);             //,ItemsDinings [indexPath.Section].mapFeature + " >> " + ItemsDinings [indexPath.Section].adress);



            return(cell);
        }
 public void AddVerticalGradient(UIColor startColor, UIColor endColor)
 {
     CAGradientLayer gradient = new CAGradientLayer ();
     gradient.Frame = this.Frame;
     gradient.Colors = new CGColor[] { startColor.CGColor, endColor.CGColor };
     this.Layer.AddSublayer (gradient);
 }
예제 #36
0
        public static CALayer SinkContourLayer(RectangleF frame, float radius)
        {
            CALayer layer = new CALayer();
            layer.Frame = frame;
            layer.CornerRadius = radius;

            CALayer topLayer = new CALayer();
            topLayer.Frame = new RectangleF(0, -1f, frame.Width, frame.Height);
            topLayer.CornerRadius = radius;
            topLayer.BackgroundColor = UIColor.FromRGBA(150, 150, 150, 255).CGColor;
            layer.InsertSublayerAbove(topLayer, layer);

            CALayer bottomLayer = new CALayer();
            bottomLayer.Frame = new RectangleF(0, 1f, frame.Width, frame.Height);
            bottomLayer.CornerRadius = radius;
            bottomLayer.BackgroundColor = UIColor.FromRGBA(40, 40, 40, 255).CGColor;
            layer.InsertSublayerAbove(bottomLayer, layer);

            CAGradientLayer leftLayer = new CAGradientLayer();
            leftLayer.Frame = new RectangleF(-1f, 0, frame.Width, frame.Height);
            leftLayer.CornerRadius = radius;
            leftLayer.Colors =  new MonoTouch.CoreGraphics.CGColor[]
            {
                UIColor.FromRGBA(100, 100, 100, 255).CGColor,
                UIColor.FromRGBA(40, 40, 40, 255).CGColor
            };
            layer.InsertSublayerAbove(leftLayer, layer);

            CAGradientLayer rightLayer = new CAGradientLayer();
            rightLayer.Frame = new RectangleF(1f, 0, frame.Width, frame.Height);
            rightLayer.CornerRadius = radius;
            rightLayer.Colors =  new MonoTouch.CoreGraphics.CGColor[]
            {
                UIColor.FromRGBA(100, 100, 100, 255).CGColor,
                UIColor.FromRGBA(40, 40, 40, 255).CGColor
            };
            layer.InsertSublayerAbove(rightLayer, layer);

            return layer;
        }
 public CommonColor UpdateColorFromLocation(CAGradientLayer layer, CommonColor color, CGPoint loc)
 => UpdateColorFromValue(color, ValueFromLocation(layer, loc));
예제 #38
0
        public static CAGradientLayer SimpleGradientLayer(RectangleF frame, float radius, UIColor highColor, UIColor lowColor)
        {
            CAGradientLayer layer = new CAGradientLayer();
            layer.Frame = frame;
            layer.CornerRadius = radius;
            layer.Colors = new MonoTouch.CoreGraphics.CGColor[]
            {
                highColor.CGColor,
                lowColor.CGColor
            };

            return layer;
        }
예제 #39
0
        public WidgetCell (IntPtr handle) : base (handle)
        {
            SelectionStyle = UITableViewCellSelectionStyle.None;

            textContentView = new UIView() {
                TranslatesAutoresizingMaskIntoConstraints = false,
            };

            textContentView.Add (projectLabel = new UILabel {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font = UIFont.FromName ("Helvetica", 16f),
                Text = "Project",
                TextColor = UIColor.White,
            });

            textContentView.Add (descriptionLabel = new UILabel {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font = UIFont.FromName ("Helvetica", 13f),
                Text = "Description",
                TextColor = UIColor.White,
            });

            ContentView.Add (colorBox = new UIView() {
                TranslatesAutoresizingMaskIntoConstraints = false,
            });

            ContentView.Add (timeLabel = new UILabel {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text = defaultTimeValue,
                Font = UIFont.FromName ("Helvetica", 13f),
                TextAlignment = UITextAlignment.Right,
                TextColor = UIColor.White,
            });

            ContentView.Add (startBtn = new StartStopBtn {
                TranslatesAutoresizingMaskIntoConstraints = false,
            });

            ContentView.Add (textContentView);

            startBtn.TouchUpInside += (sender, e) => {
                startBtn.IsActive = true;
                startBtn.IsRunning = !startBtn.IsRunning;
                if (StartBtnPressed != null) {
                    StartBtnPressed.Invoke (this, e);
                }
            };

            var maskLayer = new CAGradientLayer {
                AnchorPoint = CGPoint.Empty,
                StartPoint = new CGPoint (0.0f, 0.0f),
                EndPoint = new CGPoint (1.0f, 0.0f),
                Colors = new [] {
                    UIColor.FromWhiteAlpha (1, 1).CGColor,
                    UIColor.FromWhiteAlpha (1, 1).CGColor,
                    UIColor.FromWhiteAlpha (1, 0).CGColor,
                },
                Locations = new [] {
                    NSNumber.FromFloat (0f),
                    NSNumber.FromFloat (0.9f),
                    NSNumber.FromFloat (1f),
                },
            };

            textContentView.Layer.Mask = maskLayer;

        }
예제 #40
0
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            GradientColorStack layout = Element as GradientColorStack;

            CGColor[] colors = new CGColor[layout.Colors.Length];

            for (int i = 0, l = colors.Length; i < l; i++)
            {
                colors[i] = layout.Colors[i].ToCGColor();
            }

            var gradientLayer = new CAGradientLayer();

            switch (layout.Mode)
            {
            default:
            case GradientColorStackMode.ToRight:
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                break;

            case GradientColorStackMode.ToLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0.5);
                gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                break;

            case GradientColorStackMode.ToTop:
                gradientLayer.StartPoint = new CGPoint(0.5, 0);
                gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                break;

            case GradientColorStackMode.ToBottom:
                gradientLayer.StartPoint = new CGPoint(0.5, 1);
                gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                break;

            case GradientColorStackMode.ToTopLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0);
                gradientLayer.EndPoint   = new CGPoint(0, 1);
                break;

            case GradientColorStackMode.ToTopRight:
                gradientLayer.StartPoint = new CGPoint(0, 1);
                gradientLayer.EndPoint   = new CGPoint(1, 0);
                break;

            case GradientColorStackMode.ToBottomLeft:
                gradientLayer.StartPoint = new CGPoint(1, 1);
                gradientLayer.EndPoint   = new CGPoint(0, 0);
                break;

            case GradientColorStackMode.ToBottomRight:
                gradientLayer.StartPoint = new CGPoint(0, 0);
                gradientLayer.EndPoint   = new CGPoint(1, 1);
                break;
            }

            gradientLayer.Frame  = rect;
            gradientLayer.Colors = colors;

            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
예제 #41
0
        //public override void Draw(CGRect rect)
        //{
        //    base.Draw(rect);
        //}

        public override void Draw(CoreGraphics.CGRect rect)
        {
            base.Draw(rect);

            CustomGradientRoundEdgeView stack = (CustomGradientRoundEdgeView)this.Element;
            CGColor startColor    = stack.StartColor.ToCGColor();
            CGColor endColor      = stack.EndColor.ToCGColor();
            string  gradientStyle = stack.gradientMode;

            /*
             #region for Vertical Gradient
             *
             * var gradientLayer = new CAGradientLayer();
             *
             #endregion
             *
             #region for Horizontal Gradient
             *
             * //var gradientLayer = new CAGradientLayer()
             * //{
             * //  StartPoint = new CGPoint(0, 0.5),
             * //  EndPoint = new CGPoint(1, 0.5)
             * //};
             *
             #endregion
             */

            try
            {
                if (stack.HasBorderColor == true && stack.BorderColor != null)
                {
                    //double min = Math.Min(Element.Width, Element.Height);
                    //Control.Layer.CornerRadius = (float)(min / 2.0);
                    //Control.Layer.MasksToBounds = false;
                    //Control.Layer.BorderColor = Color.White.ToCGColor();
                    //Control.Layer.BorderWidth = 1;
                    //Control.ClipsToBounds = true;

                    double min = Math.Min(Element.Width, Element.Height);
                    //this.Layer.CornerRadius = (float)(min / 2.0);
                    this.Layer.MasksToBounds = false;
                    this.Layer.BorderColor   = stack.BorderColor.ToCGColor();
                    this.Layer.BorderWidth   = 1;
                    this.ClipsToBounds       = true;
                }
                else
                {
                }
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                //Debug.WriteLine("Unable to create circle image: " + ex);
            }

            var gradientLayer = new CAGradientLayer();

            if (gradientStyle == "Vertical")
            {
            }
            else
            {
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
            }
            gradientLayer.Frame  = rect;
            gradientLayer.Colors = new CGColor[] { startColor, endColor };
            gradientLayer.ModelLayer.CornerRadius = (float)(stack.cornerRadius);
            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
        private void SetGradientBackground(bool updateLayer = false)
        {
            var control = (GradientContentPage)Element;

            var gradientLayer = new CAGradientLayer();

            switch (control.Direction)
            {
            default:
            case GradientDirection.ToRight:
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                break;

            case GradientDirection.ToLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0.5);
                gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                break;

            case GradientDirection.ToTop:
                gradientLayer.StartPoint = new CGPoint(0.5, 1);
                gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                break;

            case GradientDirection.ToBottom:
                gradientLayer.StartPoint = new CGPoint(0.5, 0);
                gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                break;

            case GradientDirection.ToTopLeft:
                gradientLayer.StartPoint = new CGPoint(1, 1);
                gradientLayer.EndPoint   = new CGPoint(0, 0);
                break;

            case GradientDirection.ToTopRight:
                gradientLayer.StartPoint = new CGPoint(0, 1);
                gradientLayer.EndPoint   = new CGPoint(1, 0);
                break;

            case GradientDirection.ToBottomLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0);
                gradientLayer.EndPoint   = new CGPoint(0, 1);
                break;

            case GradientDirection.ToBottomRight:
                gradientLayer.StartPoint = new CGPoint(0, 0);
                gradientLayer.EndPoint   = new CGPoint(1, 1);
                break;
            }
            gradientLayer.Frame  = View.Bounds;
            gradientLayer.Colors = new CGColor[] { control.StartColor.ToCGColor(), control.EndColor.ToCGColor() };
            if (!updateLayer)
            {
                NativeView.Layer.InsertSublayer(gradientLayer, 0);
                control.PropertyChanged += Control_PropertyChanged;
            }
            else
            {
                NativeView.Layer.ReplaceSublayer(NativeView.Layer.Sublayers[0], gradientLayer);
            }
        }
		private UIView AddShadowToView (UIView view, bool reverse)
		{
			UIView containerView = view.Superview;

			var viewWithShadow = new UIView (view.Frame);
			containerView.InsertSubviewAbove (viewWithShadow, view);
			view.RemoveFromSuperview ();

			var shadowView = new UIView (viewWithShadow.Bounds);

			var colors = new CGColor[] {
				UIColor.FromWhiteAlpha(0f, 0f).CGColor,
				UIColor.FromWhiteAlpha(0f, 0.5f).CGColor
			};

			var gradient = new CAGradientLayer () {
				Frame = shadowView.Bounds,
				Colors =  colors
			};

			gradient.StartPoint = new CGPoint (reverse ? 0f : 1f, 0f);
			gradient.EndPoint = new CGPoint (reverse ? 1f : 0f, 0f);
			shadowView.Layer.InsertSublayer (gradient, 1);

			view.Frame = view.Bounds;
			viewWithShadow.AddSubview (view);

			viewWithShadow.AddSubview (shadowView);
			return viewWithShadow;
		}
        protected override void OnAttached()
        {
            try
            {
                var nativeView = Control ?? Container;
                var effect     = (GradientEffect)Element.Effects.FirstOrDefault(e => e is GradientEffect);
                if (effect == null)
                {
                    return;
                }

                var colors = effect.ColorList.Select(i => i.ToCGColor()).ToArray();

                var gradientLayer = new CAGradientLayer
                {
                    Locations = effect.LocationList?.Select(i => new NSNumber(i)).ToArray()
                };

                switch (effect.Mode)
                {
                default:
                    gradientLayer.StartPoint = new CGPoint(0, 0.5);
                    gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                    break;

                case GradientMode.ToLeft:
                    gradientLayer.StartPoint = new CGPoint(1, 0.5);
                    gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                    break;

                case GradientMode.ToTop:
                    gradientLayer.StartPoint = new CGPoint(0.5, 1);
                    gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                    break;

                case GradientMode.ToBottom:
                    gradientLayer.StartPoint = new CGPoint(0.5, 0);
                    gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                    break;

                case GradientMode.ToTopLeft:
                    gradientLayer.StartPoint = new CGPoint(1, 1);
                    gradientLayer.EndPoint   = new CGPoint(0, 0);
                    break;

                case GradientMode.ToTopRight:
                    gradientLayer.StartPoint = new CGPoint(0, 1);
                    gradientLayer.EndPoint   = new CGPoint(1, 0);
                    break;

                case GradientMode.ToBottomLeft:
                    gradientLayer.StartPoint = new CGPoint(1, 0);
                    gradientLayer.EndPoint   = new CGPoint(0, 1);
                    break;

                case GradientMode.ToBottomRight:
                    gradientLayer.StartPoint = new CGPoint(0, 0);
                    gradientLayer.EndPoint   = new CGPoint(1, 1);
                    break;
                }

                gradientLayer.Frame  = nativeView.Bounds;
                gradientLayer.Colors = colors;

                nativeView.Layer.InsertSublayer(gradientLayer, 0);
            }
            catch (Exception ex)
            {
                Log.Fatal(ex.Message);
            }
        }
예제 #45
0
        public static CALayer GetBackgroundLayer(this UIView control, Brush brush)
        {
            if (control == null)
            {
                return(null);
            }

            if (brush is SolidColorBrush solidColorBrush)
            {
                var linearGradientLayer = new CALayer
                {
                    Name            = BackgroundLayer,
                    ContentsGravity = CALayer.GravityResizeAspectFill,
                    Frame           = control.Bounds,
                    BackgroundColor = solidColorBrush.Color.ToCGColor()
                };

                return(linearGradientLayer);
            }

            if (brush is LinearGradientBrush linearGradientBrush)
            {
                var p1 = linearGradientBrush.StartPoint;
                var p2 = linearGradientBrush.EndPoint;

                var linearGradientLayer = new CAGradientLayer
                {
                    Name            = BackgroundLayer,
                    ContentsGravity = CALayer.GravityResizeAspectFill,
                    Frame           = control.Bounds,
                    LayerType       = CAGradientLayerType.Axial,
                    StartPoint      = new CGPoint(p1.X, p1.Y),
                    EndPoint        = new CGPoint(p2.X, p2.Y)
                };

                if (linearGradientBrush.GradientStops != null && linearGradientBrush.GradientStops.Count > 0)
                {
                    var orderedStops = linearGradientBrush.GradientStops.OrderBy(x => x.Offset).ToList();
                    linearGradientLayer.Colors    = orderedStops.Select(x => x.Color.ToCGColor()).ToArray();
                    linearGradientLayer.Locations = GetCAGradientLayerLocations(orderedStops);
                }

                return(linearGradientLayer);
            }

            if (brush is RadialGradientBrush radialGradientBrush)
            {
                var center = radialGradientBrush.Center;
                var radius = radialGradientBrush.Radius;

                var radialGradientLayer = new CAGradientLayer
                {
                    Name            = BackgroundLayer,
                    ContentsGravity = CALayer.GravityResizeAspectFill,
                    Frame           = control.Bounds,
                    LayerType       = CAGradientLayerType.Radial,
                    StartPoint      = new CGPoint(center.X, center.Y),
                    EndPoint        = GetRadialGradientBrushEndPoint(center, radius),
                    CornerRadius    = (float)radius
                };

                if (radialGradientBrush.GradientStops != null && radialGradientBrush.GradientStops.Count > 0)
                {
                    var orderedStops = radialGradientBrush.GradientStops.OrderBy(x => x.Offset).ToList();
                    radialGradientLayer.Colors    = orderedStops.Select(x => x.Color.ToCGColor()).ToArray();
                    radialGradientLayer.Locations = GetCAGradientLayerLocations(orderedStops);
                }

                return(radialGradientLayer);
            }

            return(null);
        }
예제 #46
0
        public WidgetCell(IntPtr handle) : base(handle)
        {
            SelectionStyle = UITableViewCellSelectionStyle.None;

            textContentView = new UIView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
            };

            textContentView.Add(projectLabel = new UILabel {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font      = UIFont.FromName("Helvetica", 16f),
                Text      = "Project",
                TextColor = UIColor.White,
            });

            textContentView.Add(descriptionLabel = new UILabel {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Font      = UIFont.FromName("Helvetica", 13f),
                Text      = "Description",
                TextColor = UIColor.White,
            });

            ContentView.Add(colorBox = new UIView()
            {
                TranslatesAutoresizingMaskIntoConstraints = false,
            });

            ContentView.Add(timeLabel = new UILabel {
                TranslatesAutoresizingMaskIntoConstraints = false,
                Text          = defaultTimeValue,
                Font          = UIFont.FromName("Helvetica", 13f),
                TextAlignment = UITextAlignment.Right,
                TextColor     = UIColor.White,
            });

            ContentView.Add(startBtn = new StartStopBtn {
                TranslatesAutoresizingMaskIntoConstraints = false,
            });

            ContentView.Add(textContentView);

            startBtn.TouchUpInside += (sender, e) => {
                startBtn.IsActive  = true;
                startBtn.IsRunning = !startBtn.IsRunning;
                if (StartBtnPressed != null)
                {
                    StartBtnPressed.Invoke(this, e);
                }
            };

            var maskLayer = new CAGradientLayer {
                AnchorPoint = CGPoint.Empty,
                StartPoint  = new CGPoint(0.0f, 0.0f),
                EndPoint    = new CGPoint(1.0f, 0.0f),
                Colors      = new [] {
                    UIColor.FromWhiteAlpha(1, 1).CGColor,
                    UIColor.FromWhiteAlpha(1, 1).CGColor,
                    UIColor.FromWhiteAlpha(1, 0).CGColor,
                },
                Locations = new [] {
                    NSNumber.FromFloat(0f),
                    NSNumber.FromFloat(0.9f),
                    NSNumber.FromFloat(1f),
                },
            };

            textContentView.Layer.Mask = maskLayer;
        }
예제 #47
0
        public static CAGradientLayer StoresGrayGradient(RectangleF frame)
        {
            CAGradientLayer backgroundLayer = new CAGradientLayer();
            backgroundLayer.Frame = new RectangleF(0, 0, frame.Width, frame.Height);
            backgroundLayer.Colors =  new MonoTouch.CoreGraphics.CGColor[]
            {
                UIColor.FromRGBA(65, 75, 73, 255).CGColor,
                UIColor.FromRGBA(40, 46, 45, 255).CGColor
            };

            CALayer topEdge = new CALayer();
            topEdge.Frame = new RectangleF(0, 0, frame.Width, 1.5f);
            topEdge.BackgroundColor = UIColor.FromRGBA(90, 99, 97, 255).CGColor;
            backgroundLayer.AddSublayer(topEdge);

            return backgroundLayer;
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            View.BackgroundColor = UIColor.Clear;

            var gradientLayer = new CAGradientLayer();

            gradientLayer.Colors = new[] { UIColor.FromRGB(98, 107, 186).CGColor, UIColor.FromRGB(57, 122, 193).CGColor };
            gradientLayer.Frame  = new CGRect(0, 0, DialogHeaderView.Frame.Width + 40, DialogHeaderView.Bounds.Height);
            DialogHeaderView.Layer.InsertSublayer(gradientLayer, 0);

            //UIPickerView Values

            var list = new List <string>
            {
                "What is Loreun Isapum?", "Provider", "Consumer"
            };

            PickerView.Layer.BorderWidth  = 2;
            PickerView.Layer.CornerRadius = 5;
            PickerView.Layer.BorderColor  = UIColor.White.CGColor;

            ReportProviderPicker.Model = new UserTypeViewModel(list);
            ReportProviderPicker.ShowSelectionIndicator = true;


            //Pickerview Custom Appearance
            var layer = new CALayer();

            layer.Frame                     = new CGRect(10, 8, ReportProviderPicker.Frame.Width - 5, ReportProviderPicker.Frame.Height - 5);
            layer.CornerRadius              = 10;
            layer.BackgroundColor           = UIColor.White.CGColor;
            ReportProviderPicker.Layer.Mask = layer;

            //reportTextArea.Layer.BorderWidth = 1;
            //reportTextArea.Layer.BorderColor = UIColor.Black.CGColor;

            //Placeholder for TextArea
            string Placeholder = "Type here";

            reportTextArea.Text = Placeholder;

            reportTextArea.ShouldBeginEditing = _ =>
            {
                if (reportTextArea.Text == Placeholder)
                {
                    reportTextArea.Text = string.Empty;
                }
                return(true);
            };

            reportTextArea.ShouldEndEditing = _ =>
            {
                if (string.IsNullOrEmpty(reportTextArea.Text))
                {
                    reportTextArea.Text = Placeholder;
                }
                reportTextArea.ResignFirstResponder();
                return(true);
            };

            btnClose.TouchUpInside += (sender, e) =>
            {
                DismissViewController(true, null);
            };
        }
예제 #49
0
        private void DrawViewBoders ( UIView targetView, UIView tp, UIView btm)
        {
            var mask = new CAGradientLayer ();
            mask.Frame = new CGRect (0, 0, targetView.Bounds.Width, 10);
            mask.Colors = new [] { UIColor.White.CGColor, UIColor.Clear.CGColor };

            tp.Frame = new CGRect ( targetView.Frame.X, targetView.Frame.Y, targetView.Bounds.Width, 10);
            tp.BackgroundColor = UIColor.White;
            tp.UserInteractionEnabled = false;
            tp.Layer.Mask = mask;

            var maskInverted = new CAGradientLayer ();
            maskInverted.Frame = new CGRect (0, 0, targetView.Frame.Width, 20);
            maskInverted.Colors = new [] { UIColor.Clear.CGColor, UIColor.White.CGColor};

            btm.Frame = new CGRect ( targetView.Frame.X, targetView.Frame.Y + targetView.Bounds.Height - 20, targetView.Bounds.Width, 20);
            btm.BackgroundColor = UIColor.White;
            btm.UserInteractionEnabled = false;
            btm.Layer.Mask = maskInverted;
        }
예제 #50
0
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            GradientView layout = (GradientView)Element;

            CGColor[] colors = new CGColor[]
            {
                layout.StartColor.ToCGColor(),
                      layout.EndColor.ToCGColor()
            };

            var gradientLayer = new CAGradientLayer();

            switch (layout.Direction)
            {
            default:
            case GradientDirection.ToRight:
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                break;

            case GradientDirection.ToLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0.5);
                gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                break;

            case GradientDirection.ToTop:
                gradientLayer.StartPoint = new CGPoint(0.5, 0);
                gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                break;

            case GradientDirection.ToBottom:
                gradientLayer.StartPoint = new CGPoint(0.5, 1);
                gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                break;

            case GradientDirection.ToTopLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0);
                gradientLayer.EndPoint   = new CGPoint(0, 1);
                break;

            case GradientDirection.ToTopRight:
                gradientLayer.StartPoint = new CGPoint(0, 1);
                gradientLayer.EndPoint   = new CGPoint(1, 0);
                break;

            case GradientDirection.ToBottomLeft:
                gradientLayer.StartPoint = new CGPoint(1, 1);
                gradientLayer.EndPoint   = new CGPoint(0, 0);
                break;

            case GradientDirection.ToBottomRight:
                gradientLayer.StartPoint = new CGPoint(0, 0);
                gradientLayer.EndPoint   = new CGPoint(1, 1);
                break;
            }

            gradientLayer.Frame  = rect;
            gradientLayer.Colors = colors;

            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
            public ProjectClientTaskButton ()
            {
                Add (container = new UIView () {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                    UserInteractionEnabled = false,
                });

                var maskLayer = new CAGradientLayer () {
                    AnchorPoint = CGPoint.Empty,
                    StartPoint = new CGPoint (0.0f, 0.0f),
                    EndPoint = new CGPoint (1.0f, 0.0f),
                    Colors = new [] {
                        UIColor.FromWhiteAlpha (1, 1).CGColor,
                        UIColor.FromWhiteAlpha (1, 1).CGColor,
                        UIColor.FromWhiteAlpha (1, 0).CGColor,
                    },
                    Locations = new [] {
                        NSNumber.FromFloat (0f),
                        NSNumber.FromFloat (0.9f),
                        NSNumber.FromFloat (1f),
                    },
                };
                container.Layer.Mask = maskLayer;

                container.Add (projectLabel = new UILabel () {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                } .Apply (Style.EditTimeEntry.ProjectLabel));
                container.Add (clientLabel = new UILabel () {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                } .Apply (Style.EditTimeEntry.ClientLabel));
                container.Add (taskLabel = new UILabel () {
                    TranslatesAutoresizingMaskIntoConstraints = false,
                } .Apply (Style.EditTimeEntry.TaskLabel));
            }
예제 #52
0
        private void UpdateGradientColors()
        {
            var extendedButton = Element as ExtendedButton;
            var gradientColors = extendedButton?.GradientColors;

            if (gradientColors == null || !gradientColors.Any() || extendedButton.Width <= 0 || extendedButton.Height <= 0)
            {
                var oldLayer = Control?.Layer.Sublayers.FirstOrDefault();
                if (oldLayer is CAGradientLayer)
                {
                    oldLayer.RemoveFromSuperLayer();
                }
                return;
            }

            /* ==================================================================================================
             * create the gradient
             * ================================================================================================*/
            var gradient = new CAGradientLayer
            {
                /* ==================================================================================================
                 * the frame's size must be the same with owner view
                 * ================================================================================================*/
                Frame = new CGRect(0, 0, extendedButton.Width, extendedButton.Height),

                /* ==================================================================================================
                 * convert the colors to CGColor objects
                 * ================================================================================================*/
                Colors = gradientColors.Select(arg => arg.ToCGColor()).ToArray()
            };

            /* ==================================================================================================
             * set the flow
             * ================================================================================================*/
            switch (extendedButton.GradientFlow)
            {
            case ExtendedButton.Flows.LeftToRight:
                gradient.StartPoint = new CGPoint(0, 0.5);
                gradient.EndPoint   = new CGPoint(1, 0.5);
                break;

            case ExtendedButton.Flows.TopDown:
                gradient.StartPoint = new CGPoint(0.5, 0);
                gradient.EndPoint   = new CGPoint(0.5, 1);
                break;

            default:
                throw new ArgumentOutOfRangeException($"The {nameof(ExtendedButton.GradientFlow)}: {extendedButton?.GradientFlow.ToString() ?? "-"} is not supported yet!");
            }

            /* ==================================================================================================
             * update corners
             * ================================================================================================*/
            var rec        = new CGRect(0, 0, extendedButton.Width, extendedButton.Height);
            var allRounded = UIRectCorner.TopLeft | UIRectCorner.TopRight | UIRectCorner.BottomLeft | UIRectCorner.BottomRight;
            var path       = UIBezierPath.FromRoundedRect(rec, allRounded, new CGSize(extendedButton.CornerRadius, extendedButton.CornerRadius));

            gradient.Mask = new CAShapeLayer
            {
                Path = path.CGPath
            };

            /* ==================================================================================================
             * add or replace the old layer if added
             * ================================================================================================*/
            var existedLayer = Control?.Layer.Sublayers.FirstOrDefault();

            if (existedLayer is CAGradientLayer)
            {
                Control?.Layer.ReplaceSublayer(existedLayer, gradient);
            }
            else
            {
                Control?.Layer.InsertSublayerBelow(gradient, existedLayer);
            }
        }
예제 #53
0
        public override NSView GetView(NSOutlineView outlineView, NSTableColumn tableColumn, NSObject item)
        {

            NSClipView view = (NSClipView)outlineView.MakeView(CellIdentifier, this);
            NSTextField exprView = (NSTextField)(view == null ? null : view.Subviews[0]);
            NSTextField textView;
            NSTextField textView1 = (NSTextField)(view == null ? null : view.Subviews[3]);


            // Cast item
            var interval = item as Interval;

            if (view == null)
            {
                

                view = new NSClipView
                {
                    Identifier = CellIdentifier,
                    AutoresizesSubviews = true,
                    BackgroundColor = NSColor.Clear,
                    AutoresizingMask = NSViewResizingMask.WidthSizable,
                    WantsLayer = true
                };

                exprView = new NSTextField
                {
                    Alignment = NSTextAlignment.Center,
                    Selectable = false,
                    Editable = false,
                    DrawsBackground = false,
                    Bordered = false,
                    LineBreakMode = NSLineBreakMode.Clipping
                };

                exprView.RotateByAngle(-90);

                exprView.SetFrameOrigin(new CGPoint(0, 2));
                exprView.SetFrameSize(new CGSize(13, 28));

                NSBox line = new NSBox
                {
                    BoxType = NSBoxType.NSBoxSeparator
                };

                line.SetFrameSize(new CGSize(2, 23));
                line.SetFrameOrigin(new CGPoint(exprView.Frame.Width + 3, 5));

                textView = new NSTextField
                {
                    Selectable = false,
                    Editable = false,
                    DrawsBackground = false,
                    Bordered = false
                };
                textView.StringValue = "Время вып.\nКоэф.эффект.";
                textView.SetFrameSize(textView.FittingSize);
                textView.SetFrameOrigin(new CGPoint(line.Frame.Location.X + 10, 0));

                textView1 = new NSTextField
                {
                    Selectable = false,
                    Editable = false,
                    DrawsBackground = false,
                    Bordered = false
                };

                textView1.SetFrameOrigin(new CGPoint(textView.Frame.Location.X + textView.Frame.Width + 3, 0));

                view.AddSubview(exprView);
                view.AddSubview(line);
                view.AddSubview(textView);
                view.AddSubview(textView1);
            }

            CAGradientLayer gradientLayer = new CAGradientLayer();
            List<CGColor> colors = new List<CGColor>();
            colors.Add(OxyColors.Transparent.ToCGColor());
            if (interval.Info.times.comm >= 0.2 * viewController.plotStatMaxTime)
            {
                colors.Insert(0, OxyColors.Transparent.ToCGColor());
                colors.Add(OxyColors.GreenYellow.ToCGColor());
            }
            if (interval.Info.times.idle >= 0.2 * viewController.plotStatMaxTime)
            {
                colors.Insert(0, OxyColors.Transparent.ToCGColor());
                colors.Add(OxyColors.LightSkyBlue.ToCGColor());
            }
            if (interval.Info.times.insuf_user >= 0.2 * viewController.plotStatMaxTime)
            {
                colors.Insert(0, OxyColors.Transparent.ToCGColor());
                colors.Add(OxyColors.Orchid.ToCGColor());
            }
            if (interval.Info.times.insuf_sys >= 0.2 * viewController.plotStatMaxTime)
            {
                colors.Insert(0, OxyColors.Transparent.ToCGColor());
                colors.Add(OxyColors.Pink.ToCGColor());
            }
            if (colors.Count == 1)
                colors.Add(colors[0]);
            gradientLayer.Colors = colors.ToArray();
            gradientLayer.StartPoint = new CGPoint(.0, .0);
            gradientLayer.EndPoint = new CGPoint(1.0, .0);
            view.Layer = gradientLayer;

            // Setup view based on the column selected
            switch (interval.Info.id.t)
            {
                case (int)InterTypes.USER:
                    exprView.StringValue = interval.Info.id.expr.ToString();
                    break;
                case (int)InterTypes.SEQ:
                    exprView.StringValue = "Посл";
                    exprView.Font = NSFont.FromFontName("Helvetica Neue", 10);
                    break;
                case (int)InterTypes.PAR:
                    exprView.StringValue = "Пар";
                    exprView.Font = NSFont.FromFontName("Helvetica Neue", 10);
                    break;
            }

            textView1.StringValue = "➢   " + interval.Info.times.exec_time.ToString("F3") + "s\n"
                + "➢   " + interval.Info.times.efficiency.ToString("F3");
            textView1.SetFrameSize(textView1.FittingSize);

            return view;
        }
        private void SetGradientBackground()
        {
            var control = (GradientNavigationPage)this.Element;

            var gradientLayer = new CAGradientLayer();

            switch (control.Direction)
            {
            default:
            case GradientDirection.ToRight:
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                break;

            case GradientDirection.ToLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0.5);
                gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                break;

            case GradientDirection.ToTop:
                gradientLayer.StartPoint = new CGPoint(0.5, 0);
                gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                break;

            case GradientDirection.ToBottom:
                gradientLayer.StartPoint = new CGPoint(0.5, 1);
                gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                break;

            case GradientDirection.ToTopLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0);
                gradientLayer.EndPoint   = new CGPoint(0, 1);
                break;

            case GradientDirection.ToTopRight:
                gradientLayer.StartPoint = new CGPoint(0, 1);
                gradientLayer.EndPoint   = new CGPoint(1, 0);
                break;

            case GradientDirection.ToBottomLeft:
                gradientLayer.StartPoint = new CGPoint(1, 1);
                gradientLayer.EndPoint   = new CGPoint(0, 0);
                break;

            case GradientDirection.ToBottomRight:
                gradientLayer.StartPoint = new CGPoint(0, 0);
                gradientLayer.EndPoint   = new CGPoint(1, 1);
                break;
            }

            // --> Get StatusBarFrame size:
            var statusBarSize = UIApplication.SharedApplication.StatusBarFrame.Size;

            // --> Set Height and Width of StatusBarFrame size:
            var statusBar = Math.Min(statusBarSize.Height, statusBarSize.Width);

            // --> Set NavigationBar Bounds:
            var navigationBarBounds = new CGRect(
                NavigationBar.Bounds.X,
                NavigationBar.Bounds.Y,
                NavigationBar.Bounds.Width,
                statusBar + NavigationBar.Bounds.Height);

            gradientLayer.Bounds = navigationBarBounds;
            gradientLayer.Colors = new CGColor[] { control.StartColor.ToCGColor(), control.EndColor.ToCGColor() };
            UIGraphics.BeginImageContext(gradientLayer.Bounds.Size);
            gradientLayer.RenderInContext(UIGraphics.GetCurrentContext());
            UIImage image = UIGraphics.GetImageFromCurrentImageContext();

            UIGraphics.EndImageContext();

            NavigationBar.SetBackgroundImage(image, UIBarMetrics.Default);

            // --> To Change Navigation Bar Icon Color:
            NavigationBar.TintColor = Color.White.ToUIColor();

            // --> Hide Navigation Bar Separator:
            //NavigationBar.ShadowImage = new UIImage();
        }