Tôi đã phân lớp MKAnnotationView để tạo chú thích về cơ bản vẽ một vòng tròn xung quanh một điểm trên một chế độ xem bản đồ qua ghi đè drawRect. Vòng tròn vẽ tốt trong các tình huống sau đây (trong mô phỏng):MKAnnotationView biến mất trên swipe và nhấn đúp vào zoom
- On tải ban đầu của bản đồ
- On swipe, nhưng chỉ khi chuyển động swipe được dừng lại trước khi liên lạc đầu (do đó bản đồ mà không "bờ biển" sau khi liên lạc kết thúc)
- On zoom nhúm
vòng tròn sẽ biến mất khi một trong các hành động sau đây xảy ra:
- Swipe nơi bản đồ "bờ biển" sau khi liên lạc kết thúc
- Double-tap zoom
Vòng tròn sẽ xuất hiện trở lại nếu bất kỳ hành động trong nhóm "làm việc" được thực hiện sau khi nó đã biến mất.
Điều gì có thể gây ra điều này? Tôi không phải là một chuyên gia vẽ/hiển thị/bố cục (thẳng thắn, tôi cũng không phải là một chuyên gia về C hoặc iPhone).
Dưới đây là một số mã hơi đơn giản mà dường như phù hợp nhất từ lớp con MKAnnotationView tôi:
- (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));
}
cũng nhìn thấy hành vi này, tìm kiếm một giải pháp ... –
thậm chí tôi phải đối mặt với cùng một vấn đề, bất kỳ may mắn? – Ameya
là drawRect được gọi là tất cả trong nhóm "không" làm việc? – Magnus