Ich baue eine benutzerdefinierte UITableView mit jeder Zelle, die ein Stück Text und eine MKMapView enthält. Ich möchte, dass die Ansicht "Symbol" der Karte in der Zelle abgerundete Ecken hat und dies scheint ein Problem zu sein.
Ich verwende benutzerdefinierte Zeichnung sowohl für meine UITableViewCell als auch für meine MapIcon
(benutzerdefinierte Kartenansicht), die ich meiner UITableViewCell hinzufüge.
MapIcon
ist eine Unterklasse von MKMapView
und die Zeichenmethode sieht wie folgt aus:
- (void) drawRect: (CGRect) rect {
%Vor%CGContextBeginPath (Kontext); CGContextMoveToPoint (Kontext, Xmin, Ymid); CGContextAddArcToPoint (Kontext, Xmin, Ymin, Xmid, Ymin, Radius); CGContextAddArcToPoint (Kontext, Xmax, Ymin, Xmax, Ymid, Radius); CGContextAddArcToPoint (Kontext, Xmax, Ymax, Xmid, Ymax, Radius); CGContextAddArcToPoint (Kontext, Xmin, Ymax, Xmin, Ymid, Radius); CGContextClosePath (Kontext);
%Vor%CGContextClip (Kontext); CGContextEndTransparencyLayer (Kontext); }
Und die Karten bekommen nicht die Ecken aufgeraut, wie im folgenden Screenshot zu sehen ist:
Alternativtext http://img190.imageshack.us/img190/948/picture1vmk.png
Wenn ich jedoch die MapIcon
von UIView in die Unterklasse ändere und dieselben benutzerdefinierten Zeichenmethoden verwende, wird die Ansicht perfekt abgeschnitten, Bild unten:
Alternativtext http://img503.imageshack.us/img503/6269/picture2xkq.png
Ist es falsch für mich, MKMapView so zu unterteilen und zu erwarten, dass es abschneidet? Irgendwelche anderen rund um diese Ecken?
Prost, Kaspa
Sehen Sie sich den letzten Abschnitt des Abschnitts "Übersicht" in der an MKMapView Klassenreferenz :
Obwohl Sie die MKMapView-Klasse nicht selbst ableiten sollten, ...
Ich denke, das beantwortet ziemlich gut Ihre Frage, ob Sie es unterklassifizieren sollten. Eine Sache, die Sie tun können, ist eine andere Ansicht auf die MKMapView, die wie der Hintergrund aussieht, um die Ecken zu runden. Wenn Sie eine beliebige Größe benötigen, können Sie die Methode strechableImage
für UIImage
ausprobieren.
Es ist auch ziemlich einfach, bestimmte Ecken zu runden, wenn Sie brauchen. Zum Beispiel, wenn sich die Karte an der Spitze einer NSTableViewCell innerhalb einer gruppierten NSTableView befindet
Etwas modifiziert von ACEToolKit :
%Vor%Tags und Links iphone uitableview