Я создаю пользовательский UITableView с каждой из ячеек, содержащих фрагмент текста и MKMapView. Я хочу, чтобы представление карты в виде значка в ячейке имело закругленные углы, и это кажется проблемой.
Я использую пользовательский рисунок как для своего UITableViewCell, так и для MapIcon
(пользовательский вид карты), который добавляю к своему UITableViewCell.
MapIcon
является подклассом MKMapView
, и метод рисования выглядит следующим образом:
- (void) drawRect: (CGRect) rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, strokeWidth);
CGContextSetStrokeColorWithColor(context,self.strokeColor.CGColor);
CGContextSetFillColorWithColor(context, self.rectColor.CGColor);
CGFloat radius = arcRadius;
CGFloat Xmin = CGRectGetMinX(rect);
CGFloat Xmid = CGRectGetMidX(rect);
CGFloat Xmax = CGRectGetMaxX(rect);
CGFloat Ymin = CGRectGetMinY(rect);
CGFloat Ymid = CGRectGetMidY(rect);
CGFloat Ymax = CGRectGetMaxY(rect);
CGContextBeginPath (контекст);
CGContextMoveToPoint (context, Xmin, Ymid);
CGContextAddArcToPoint (context, Xmin, Ymin, Xmid, Ymin, radius);
CGContextAddArcToPoint (контекст, Xmax, Ymin, Xmax, Ymid, радиус);
CGContextAddArcToPoint (контекст, Xmax, Ymax, Xmid, Ymax, радиус);
CGContextAddArcToPoint (контекст, Xmin, Ymax, Xmin, Ymid, радиус);
CGContextClosePath (контекст);
CGContextDrawPath(context, kCGPathFillStroke);
CGContextClip (контекст);
CGContextEndTransparencyLayer (контекст);
}
А на картах углы не округлены, как видно на скриншоте ниже:
альтернативный текст http://img190.imageshack.us/img190/948/picture1vmk.png
Если, однако, я изменю MapIcon
на подкласс из UIView и использую те же пользовательские методы рисования, представление будет отлично обрезано, изображение ниже:
альтернативный текст http://img503.imageshack.us/img503/6269/picture2xkq.png
Это неправильно для меня, чтобы подкласс MKMapView таким образом и ожидал его обрезать?
Любое другое закругление этих углов?
Ура,
Каспа