Tôi có một lớp phủ trên bản đồ và tôi muốn thay đổi tọa độ của nó. Để thực hiện điều này một cách liền mạch, tôi sẽ gọi phương thức setNeedsDisplayInMapRect: sau khi thay đổi được thực hiện cho chế độ xem.Thay đổi tọa độ của MKOverlay cho một MKOverlayView
Tôi đã thử nghiệm điều này bằng cách chỉ cần thay đổi các fillColor và nó hoạt động tốt:
overlayView.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.3];
[overlayView setNeedsDisplayInMapRect:mapView.visibleMapRect];
Tuy nhiên tôi đã dường như đánh một bức tường gạch cố gắng cũng để thay đổi tọa độ trung tâm của xem lớp phủ của tôi (đó là an MKCircleView với số MKCircle). Có một phương thức trong MKAnnotation, mà MKCircle tuân theo, được gọi là setCoordinate: - có vẻ như những gì tôi cần. Thật không may mặc dù, các tài sản circle
trong MKCircleView là chỉ đọc. Hơn nữa, tài sản overlay
trong MKOverlayView cũng là chỉ đọc. Có thực sự là một cách để thay đổi tọa độ cho một lớp phủ, mà không cần phải loại bỏ chế độ xem lớp phủ và thêm một lớp phủ mới (điều này sẽ gây ra nhấp nháy rất đáng chú ý trên màn hình.)?
Tôi đã gặp vấn đề tương tự với MKPolyline. Trong trường hợp của tôi dòng luôn luôn được lâu hơn, vì vậy tôi luôn luôn vẽ hai polylines sau đó loại bỏ các cũ hơn. Bằng cách này, dòng dài hơn sẽ ẩn nhấp nháy. – theaob