// // 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; }
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; }
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; }
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; }
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); }
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; }
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; }
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; }
/// <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; }
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); }
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; } }
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); }
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; }
protected override void OnDetached() { gradientDrawable = null; }
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); } }
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(); }
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); }
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; }; }
/* 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); }
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); }
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); }
//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); }
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; }
// 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); }
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));
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; }
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; }
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); }
//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); } }
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); }
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; }
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); }; }
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; }
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)); }
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); } }
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(); }