Rysowanie zaokrąglonych prostokątów w grafice podstawowej

Chcę replikować znaczniki zdarzeń domyślnego kalendarza na iPada, które wyglądają tak:

 Próbuję użyć do tego podstawowych rysunków, malując ścieżkę zaokrąglonego prostego. Oto rezultat, który mogłem wymyślić:

Jak widać, wersja iPada wygląda znacznie gładko na zaokrąglonych rogach. Próbowałem użyć większej szerokości linii, która wygląda tak:

Mój kod wygląda tak (dostałem go z tej strony):

<code>UIColor* fillColor= [self.color colorByMultiplyingByRed:1 green:1 blue:1 alpha:0.2];

CGContextSetLineWidth(ctx, 1.0);
CGContextSetStrokeColorWithColor(ctx, self.color.CGColor);
CGContextSetFillColorWithColor(ctx, fillColor.CGColor);

CGRect rrect = self.bounds;

CGFloat radius = 30.0;
CGFloat width = CGRectGetWidth(rrect);
CGFloat height = CGRectGetHeight(rrect);

if (radius > width/2.0)
   radius = width/2.0;

if (radius > height/2.0)
   radius = height/2.0;    

CGFloat minx = CGRectGetMinX(rrect);
CGFloat midx = CGRectGetMidX(rrect);
CGFloat maxx = CGRectGetMaxX(rrect);
CGFloat miny = CGRectGetMinY(rrect);
CGFloat midy = CGRectGetMidY(rrect);
CGFloat maxy = CGRectGetMaxY(rrect);
CGContextMoveToPoint(ctx, minx, midy);
CGContextAddArcToPoint(ctx, minx, miny, midx, miny, radius);
CGContextAddArcToPoint(ctx, maxx, miny, maxx, midy, radius);

CGContextAddArcToPoint(ctx, maxx, maxy, midx, maxy, radius);
CGContextAddArcToPoint(ctx, minx, maxy, minx, midy, radius);
CGContextClosePath(ctx);
CGContextDrawPath(ctx, kCGPathFillStroke);

// draw circle on left side

CGRect target= CGRectMake(rect.origin.x + 4.0, 
                          rect.origin.y + 3.0, 
                          7.0, 7.0);

CGContextSetFillColorWithColor(ctx, self.color.CGColor);
CGContextSetAlpha(ctx, 0.4);
CGContextFillEllipseInRect(ctx, target);

CGContextSetAlpha(ctx, 0.9);
CGContextSetStrokeColorWithColor(ctx, self.color.CGColor);
CGContextStrokeEllipseInRect(ctx, target);
</code>

Czy ktoś może mi pomóc przybliżyć wyniki do oryginału? Czy powinienem użyć innej techniki do namalowania zaokrąglonego prostego, czy też są jakieś parametry, które mogę zmienić, aby wyglądał gładko? Próbowałem już użyć aUIBezierPath, ale zasadniczo wyglądał tak samo. Jakieś wskazówki?

[edytuj] TheCGRectInsetrozwiązanie oparte na:

questionAnswers(2)

yourAnswerToTheQuestion