title: Merge multiple CGPaths together to make one path
body: <p>I am making a complex shape using a few CGRects and Ellipses. I would like to stroke that path once it has been created. When I stroke the path it strokes each shape. Is there a way I can merge each shape into a single path, so the stroke doesn't intersect?</p>
  
  <p><img src="https://i.stack.imgur.com/kXDg2.png" alt="enter image description here"></p>
  
  <pre><code>int thirds = self.height / 3;
  
  CGPathRef aPath = CGPathCreateMutable();
  
  CGRect rectangle = CGRectMake((58 - 10) / 2, 46, 10, self.height - 58);
  CGPathAddRect(aPath, nil, rectangle);
  
  CGPathAddEllipseInRect(aPath, nil, CGRectMake((58 - 48) / 2, 0, 48, 48));
  CGPathAddEllipseInRect(aPath, nil, CGRectMake((58 - 48) / 2, thirds, 48, 48));
  CGPathAddEllipseInRect(aPath, nil, CGRectMake((58 - 48) / 2, thirds * 2, 48, 48));
  CGPathAddEllipseInRect(aPath, nil, CGRectMake(0, self.height - 58, 58, 58));
  CGPathCloseSubpath(aPath);
  CGPathRef other = CGPathCreateCopy(aPath);
  
  CAShapeLayer *square = [CAShapeLayer layer];
  square.fillColor = [UIColor colorWithRed:36/255.0f green:56/255.0f blue:82/255.0f alpha:1.0f].CGColor;
  square.strokeColor = [UIColor colorWithRed:50/255.0f green:70/255.0f blue:96/255.0f alpha:1.0f].CGColor;
  square.path = other;
  [self.layer addSublayer:square];
  </code></pre>
  
  <p><strong>UPDATE</strong></p>
  
  <p>I tried with adding paths together and I got the exact same result</p>
  
  <pre><code>CGPathAddPath(aPath, nil, CGPathCreateWithRect(rectangle, nil));
  
  CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake((58 - 48) / 2, 0, 48, 48), nil));
  CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake((58 - 48) / 2, thirds, 48, 48), nil));
  CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake((58 - 48) / 2, thirds * 2, 48, 48), nil));
  CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake(0, self.height - 58, 58, 58), nil));
  </code></pre>