MKAnnotationView, исчезающий на сильном ударе и масштабировании двойного касания

Я разделил MKAnnotationView на подклассы для создания аннотации, которая в основном рисует круг вокруг точки на представлении карты посредством переопределения drawRect. Круг тянет прекрасный в следующих ситуациях (в средстве моделирования):

  • На начальной загрузке представления карты
  • На сильном ударе, но только когда движение сильного удара останавливается перед сенсорными концами (так, чтобы карта не "курсировала" после сенсорных концов),
  • На масштабировании повышения

Круг исчезнет, когда любое из следующих действий произойдет:

  • Сильный удар, где карта "курсируют" после касания, заканчивается
  • Дважды коснитесь масштабирования

Круг вновь появится, если какие-либо из мер в "рабочей" группе будут приняты после того, как это исчезло.

Что могло бы вызвать это? Я не тянуть/отображать/расположение эксперт (откровенно говоря, я не obj C или эксперт iPhone ни один).

Вот некоторый немного упрощенный код, который кажется самым релевантным от моего подкласса 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));
}
6
задан Steve N 17 February 2010 в 06:53
поделиться