Я создаю пользовательский UITableView с каждой ячейкой, содержащей кусок текста и MKMapView. Я хочу, чтобы на карте «значок» вид в ячейке были закругленные углы, и это, похоже, проблема.Округлые углы MKMapView
Я использую пользовательский чертеж как для моего UITableViewCell, так и для моего MapIcon
(пользовательский вид карты), который я добавляю в свой UITableViewCell.
MapIcon
является подклассом MKMapView
и метод рисования выглядит следующим образом:
- (недействительными) DrawRect: (CGRect) прямоугольник {
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 (контекст, Xmin, Ymid); CGContextAddArcToPoint (контекст, 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 (контекст); }
И карты не получают углы rouned, как можно видеть на скриншоте ниже:
alt text http://img190.imageshack.us/img190/948/picture1vmk.png
Если же изменить MapIcon
подкласс от UIView и использовать тот же обычай рисования методы, вид отсекается отлично, изображение ниже:
alt text http://img503.imageshack.us/img503/6269/picture2xkq.png
Неправильно ли мне подклассировать MKMapView таким образом и ожидать, что он будет клип? Любые другие закругленные углы?
Приветствия, Каспа
ли вы, что помещение MapView здесь происходит сбой, когда он выходит и повторно вводит представление? –