Ho creato una sottoclasse di MKAnnotationView per creare un'annotazione che disegna fondamentalmente un cerchio attorno a un punto su una vista della mappa tramite l'override di drawRect. Il cerchio disegna bene nelle seguenti situazioni (nel simulatore):MKAnnotationView scompare con lo scorrimento e tocca due volte con lo zoom
- In caricamento iniziale della vista mappa
- Il colpo, ma solo quando il movimento strisciata viene arrestato prima estremità di contatto (in modo che non fa cartina "costa" dopo tocco finisce)
- Il pinch zoom
Il cerchio scompare quando una delle seguenti azioni:
- Swipe dove mappa "coste" dopo tocco finisce
- doppio tap zoom
Il cerchio riapparirà se una delle azioni del gruppo "di lavoro" sono presi dopo che è scomparso.
Cosa potrebbe causare questo? Non sono un esperto di disegni/display/layout (sinceramente, non sono un esperto di obj C o iPhone).
Ecco po 'di codice leggermente semplificata che sembra più rilevante dal mio sottoclasse MKAnnotationView:
- (void)drawRect:(CGRect)rect {
// Drawing code
[self drawCircleAtPoint:CGPointMake(0,0) withRadius:self.radiusInPixels andColor:self.circleAnnotation.color];
}
- (void)drawCircleAtPoint:(CGPoint)p withRadius:(int)r {
CGContextRef contextRef = UIGraphicsGetCurrentContext();
float alpha = 0.75;
CGContextSetRGBFillColor(contextRef, 255, 0, 0, alpha);
CGContextSetRGBStrokeColor(contextRef, 255, 0, 0, alpha);
// Draw a circle (border only)
CGContextStrokeEllipseInRect(contextRef, CGRectMake(0, 0, 2*r, 2*r));
}
anche vedere questo comportamento, alla ricerca di una soluzione ... –
anche io sono affrontare lo stesso problema, qualche fortuna? – Ameya
è il drawRect chiamato nel gruppo di lavoro "non"? – Magnus