public override UIImage GenerateBackgroundImage() { UIImage resultImage; UIGraphics.BeginImageContextWithOptions(BackBounds.Size, false, UIScreen.MainScreen.Scale); var center = new CGPoint(BackBounds.GetMidX(), BackBounds.GetMidY()); using (var context = UIGraphics.GetCurrentContext()) using (var circlePath = UIBezierPath.FromOval(new CGRect(CGPoint.Empty, BackBounds.Size))) using (var borderBagelPath = BezierPathGenerator.Bagel(center, StartBorderRadius, EndBorderRadius, 0f, FullCircleAngle)) using (var innerBorderBagelPath = BezierPathGenerator.Bagel(center, StartBorderRadius + BorderPadding, EndBorderRadius - BorderPadding, 0f, FullCircleAngle)) { context.SaveState(); context.SetFillColor(BackCircleBackgroundColor); circlePath.Fill(); context.RestoreState(); context.SaveState(); context.SetFillColor(BackBorderColor); borderBagelPath.Fill(); context.RestoreState(); context.SaveState(); context.SetFillColor(BackInnerBorderColor); innerBorderBagelPath.Fill(); context.RestoreState(); resultImage = UIGraphics.GetImageFromCurrentImageContext(); } return(resultImage); }
public override UIImage GenerateBackgroundImage() { UIImage resultImage; UIGraphics.BeginImageContextWithOptions(BackBounds.Size, false, UIScreen.MainScreen.Scale); var center = new CGPoint(BackBounds.GetMidX(), BackBounds.GetMidY()); using (var context = UIGraphics.GetCurrentContext()) using (var innerBorderBagelPath = BezierPathGenerator.Bagel(center, startRadius, endRadius, 0f, FullCircleAngle)) { context.SaveState(); context.SetFillColor(BGColors.CGColor); innerBorderBagelPath.Fill(); context.RestoreState(); resultImage = UIGraphics.GetImageFromCurrentImageContext(); } return(resultImage); }