Esempio n. 1
0
        UIImage GetTintedImage(UIImage img)
        {
            //// Make sure tintColor is available (>= iOS 7.0 runtime)
            //if( [self respondsToSelector:@selector(tintColor)] && img.renderingMode == UIImageRenderingModeAlwaysTemplate )
            //{
            UIGraphics.BeginImageContextWithOptions(img.Size, false, UIScreen.MainScreen.Scale);
            var context = UIGraphics.GetCurrentContext();

            context.TranslateCTM(0, img.Size.Height);
            context.ScaleCTM((nfloat)1.0, (nfloat)(-1.0));
            var rect = new CGRect(0, 0, img.Size.Width, img.Size.Height);

            // draw alpha-mask
            context.SetBlendMode(CGBlendMode.Normal);
            context.DrawImage(rect, img.CGImage);
            // draw tint color, preserving alpha values of original image
            context.SetBlendMode(CGBlendMode.SourceIn);
            TintColor.SetFill();
            context.FillRect(rect);

            var tintedImage = UIGraphics.GetImageFromCurrentImageContext();

            UIGraphics.EndImageContext();
            //}
            return(tintedImage);
        }
Esempio n. 2
0
            public override void Draw(CGRect rect)
            {
                //get graphics context
                using (CGContext g = UIGraphics.GetCurrentContext())
                {
                    //set up drawing attributes
                    g.SetLineWidth(1);
                    if (TintColor != null)
                    {
                        TintColor.SetFill();
                        TintColor.SetStroke();
                    }
                    else
                    {
                        UIColor.Black.SetFill();
                        UIColor.Black.SetStroke();
                    }

                    //create geometry
                    var path = new CGPath();

                    path.AddLines(new CGPoint[] {
                        new CGPoint(1, 30),
                        new CGPoint(5, 30),
                        new CGPoint(5, 26)
                    });

                    path.CloseSubpath();

                    //add geometry to graphics context and draw it
                    g.AddPath(path);
                    g.DrawPath(CGPathDrawingMode.FillStroke);
                }

                base.Draw(rect);
            }