title: drawRect() draw a custom shape, why can't fill color?
body: <p>I 'm writing a custom shaped HUD and filling it with some color, but I can't fill the right part of my HUD.</p>
  
  <pre><code>#define startX 20
  #define startY 20
  #define circleDiameter 60
  #define PI 3.14159265358979323846
  </code></pre>
  
  <p>Here is the code:</p>
  
  <pre><code>- (void)drawRect:(CGRect)rect
  
  CGContextClearRect(UIGraphicsGetCurrentContext(), rect);
  CGContextRef context = UIGraphicsGetCurrentContext();
  
  CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
  CGContextFillRect(context,self.bounds);
  
  CGContextSetLineWidth(context, 1.0f);
  CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0 green:255 blue:0 alpha:0.5].CGColor);
  CGRect circlePoint = CGRectMake(startX, startY, circleDiameter, circleDiameter);
  CGContextFillEllipseInRect(context, circlePoint);
  CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
  CGContextAddEllipseInRect(context, circlePoint);
  CGContextStrokePath(context);
  
  CGContextSetLineWidth(context, 1.0f);
  
  CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
  
  CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0 green:255 blue:0 alpha:0.5].CGColor);
  CGContextBeginPath(context);
  //line start x.
  CGContextMoveToPoint(context, 70, 28);
  CGContextAddLineToPoint(context, 170, 28);
  CGContextMoveToPoint(context, 70, 72);
  CGContextAddLineToPoint(context, 170, 72);
  CGContextStrokePath(context);
  //draw radius
  CGContextAddArc(context, 170, 50, 22, -PI/2, PI/2, 0);
  CGContextStrokePath(context);
  
  CGContextClosePath(context);
  CGContextFillPath(context);
  }
  </code></pre>
  
  <p>I want to fill the whole path with the color green, what should I do?</p>
  
  <p>here is the result snapshot.: <img src="https://i.stack.imgur.com/2G6CY.png" alt="result snapshot"></p>