Je construis un UITableView personnalisé avec chacune des cellules contenant un texte et un MKMapView. Je veux que la vue "icône" de la carte dans la cellule ait des coins arrondis et cela semble être un problème. J'utilise un dessin personnalisé à la fois pour mon UITableViewCell et mon MapIcon
(vue de carte personnalisée) que j'ajoute à mon UITableViewCell.Coins arrondis de MKMapView
MapIcon
est une sous-classe de MKMapView
et le procédé d'étirage se présente comme suit:
- (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 (contexte); CGContextMoveToPoint (context, Xmin, Ymid); CGContextAddArcToPoint (contexte, Xmin, Ymin, Xmid, Ymin, rayon); CGContextAddArcToPoint (contexte, Xmax, Ymin, Xmax, Ymid, rayon); CGContextAddArcToPoint (contexte, Xmax, Ymax, Xmid, Ymax, rayon); CGContextAddArcToPoint (contexte, Xmin, Ymax, Xmin, Ymid, rayon); CGContextClosePath (context);
CGContextDrawPath(context, kCGPathFillStroke);
CGContextClip (contexte); CGContextEndTransparencyLayer (contexte); }
Et les cartes ne reçoivent pas les coins rouned, comme on peut le voir dans la capture d'écran ci-dessous:
alt text http://img190.imageshack.us/img190/948/picture1vmk.png
Si toutefois je modifier le MapIcon
sous-classe de UIView et utiliser le même dessin sur mesure méthodes, la vue se clipser parfaitement, l'image ci-dessous:
alt text http://img503.imageshack.us/img503/6269/picture2xkq.png
Est-ce que c'est faux pour moi de sous-classer MKMapView d'une telle manière et s'attendre à ce qu'il se clipse? Y a-t-il d'autres arrondissements dans ces coins?
Cheers, KASPA
Avez-vous trouvé que mettre un MapView plante ici quand il sort et ré-entrer dans la vue? –