diff options
Diffstat (limited to 'Xamarin.Forms.Maps.iOS')
-rw-r--r-- | Xamarin.Forms.Maps.iOS/MapRenderer.cs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Xamarin.Forms.Maps.iOS/MapRenderer.cs b/Xamarin.Forms.Maps.iOS/MapRenderer.cs index 94d5eee9..c556d141 100644 --- a/Xamarin.Forms.Maps.iOS/MapRenderer.cs +++ b/Xamarin.Forms.Maps.iOS/MapRenderer.cs @@ -134,6 +134,7 @@ namespace Xamarin.Forms.Maps.iOS public class MapRenderer : ViewRenderer { CLLocationManager _locationManager; + bool _shouldUpdateRegion; public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint) { @@ -215,6 +216,19 @@ namespace Xamarin.Forms.Maps.iOS UpdateHasScrollEnabled(); else if (e.PropertyName == Map.HasZoomEnabledProperty.PropertyName) UpdateHasZoomEnabled(); + else if (e.PropertyName == VisualElement.IsVisibleProperty.PropertyName && ((Map)Element).LastMoveToRegion != null) + _shouldUpdateRegion = true; + } + + public override void LayoutSubviews() + { + base.LayoutSubviews(); + if (_shouldUpdateRegion) + { + MoveToRegion(((Map)Element).LastMoveToRegion, false); + _shouldUpdateRegion = false; + } + } void AddPins(IList pins) |