public override void Draw(CGRect rect)
{
using (var context = UIGraphics.GetCurrentContext ()) {
switch (_maskType) {
case MaskType.Black:
UIColor.FromWhiteAlpha (0f, 0.5f).SetColor ();
context.FillRect (Bounds);
break;
case MaskType.Gradient:
nfloat[] colors = new nfloat[] { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.75f };
nfloat[] locations = new nfloat[] { 0.0f, 1.0f };
using (var colorSpace = CGColorSpace.CreateDeviceRGB ()) {
using (var gradient = new CGGradient (colorSpace, colors, locations)) {
var center = new CGPoint (Bounds.Size.Width / 2, Bounds.Size.Height / 2);
float radius = Math.Min ((float)Bounds.Size.Width, (float)Bounds.Size.Height);
context.DrawRadialGradient (gradient, center, 0, center, radius, CGGradientDrawingOptions.DrawsAfterEndLocation);
}
}
break;
}
}
}