summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Maps.iOS/MapRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Maps.iOS/MapRenderer.cs')
-rw-r--r--Xamarin.Forms.Maps.iOS/MapRenderer.cs14
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)