ちょっと必要だったので作りました。

CoreGraphicsを使って、指定したCGRectの中に、指定した太さの×印(Cross Sign)を描画するためのPathを生成します。
1 void PDPathAddCrossSign(CGMutablePathRef path, CGRect rect, CGFloat thickness)
2 {
3 CGFloat diff = rect.size.width - rect.size.height;
4 rect = CGRectDeflateRect(rect, MAX(0, diff/2), MAX(0, -diff/2));
5 CGFloat radius = rect.size.width/2;
6 CGFloat d = sqrt(2)*thickness/2;
7 CGFloat cx = CGRectGetMidX(rect), cy = CGRectGetMidY(rect);
8 CGAffineTransform transform = CGAffineTransformMakeTranslation(cx, cy);
9 CGPathMoveToPoint(path, &transform, d, 0);
10 for(int i = 0; i < 4; ++i){
11 CGPathAddLineToPoint(path, &transform, radius, radius - d);
12 CGPathAddLineToPoint(path, &transform, radius - d, radius);
13 CGPathAddLineToPoint(path, &transform, 0, d);
14 transform = CGAffineTransformRotate(transform, M_PI/2.0f);
15 }
16 CGPathCloseSubpath(path);
17 }
中で呼び出してるCGRectDeflateRectは以下のようなものです。
1 CGRect CGRectInflateRect(CGRect rect, CGFloat width, CGFloat height)
2 {
3 rect.origin.x -= width;
4 rect.origin.y -= height;
5 rect.size.width += width*2;
6 rect.size.height += height*2;
7 return rect;
8 }
9
10 CGRect CGRectDeflateRect(CGRect rect, CGFloat width, CGFloat height)
11 {
12 return CGRectInflateRect(rect, -width, -height);
13 }
これを使う事で、任意の大きさ、太さ、色で×印を描画できます。