Podsumowałem MKAnnotationView, aby utworzyć adnotację, która w zasadzie rysuje okrąg wokół punktu na widoku mapy poprzez zastąpienie drawRect. Krąg rysuje grzywny w następujących sytuacjach (w symulatorze):MKAnnotationView znika po przesunięciu palcem i dwukrotnym kliknięciu
- Na wstępnym obciążeniu widoku mapy
- Na machnięcia, ale tylko wtedy, gdy trzepnąć ruch jest zatrzymany przed zakończeniem dotykowych (tak, że mapa nie "coast" po zakończeniu dotykowy)
- na pinch zoom
krąg zniknie, gdy którekolwiek z poniższych działań wystąpić:
- Swipe gdzie map „wybiegiem” po kontakcie kończy
- dotknij dwukrotnie zoom
Koło pojawi się ponownie, jeśli któryś z działaniami w grupie „pracy” są podejmowane po to zniknął.
Co może być przyczyną? Nie jestem ekspertem od rysowania/wyświetlania/układania (szczerze mówiąc, nie jestem też ekspertem od CIC lub iPhone'a).
Oto nieco uproszczony kod, który wydaje się najbardziej istotne z mojego MKAnnotationView podklasy:
- (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));
}
również widząc ten problem, szukasz rozwiązania ... –
nawet jestem z tym samym problemem, jakiekolwiek szczęście? – Ameya
jest drawRect wywołany w ogóle w grupie roboczej "non"? – Magnus