summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.iOS
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.iOS')
-rw-r--r--Xamarin.Forms.Platform.iOS/RendererPool.cs4
-rw-r--r--Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs10
-rw-r--r--Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs4
3 files changed, 7 insertions, 11 deletions
diff --git a/Xamarin.Forms.Platform.iOS/RendererPool.cs b/Xamarin.Forms.Platform.iOS/RendererPool.cs
index 7c7e4458..563201f0 100644
--- a/Xamarin.Forms.Platform.iOS/RendererPool.cs
+++ b/Xamarin.Forms.Platform.iOS/RendererPool.cs
@@ -91,7 +91,9 @@ namespace Xamarin.Forms.Platform.MacOS
{
PushRenderer(childRenderer);
- if (ReferenceEquals(childRenderer, Platform.GetRenderer(childRenderer.Element)))
+ // The ListView CalculateHeightForCell method can create renderers and dispose its child renderers before this is called.
+ // Thus, it is possible that this work is already completed.
+ if (childRenderer.Element != null && ReferenceEquals(childRenderer, Platform.GetRenderer(childRenderer.Element)))
childRenderer.Element.ClearValue(Platform.RendererProperty);
}
diff --git a/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs
index 6f10cf13..7fd68cc0 100644
--- a/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs
+++ b/Xamarin.Forms.Platform.iOS/Renderers/ListViewRenderer.cs
@@ -739,14 +739,8 @@ namespace Xamarin.Forms.Platform.iOS
// Clear renderer from descendent; this will not happen in Dispose as normal because we need to
// unhook the Element from the renderer before disposing it.
descendant.ClearValue(Platform.RendererProperty);
-
- if (renderer != null)
- {
- // Unhook Element (descendant) from renderer before Disposing so we don't set the Element to null
- renderer.SetElement(null);
- renderer.Dispose();
- renderer = null;
- }
+ renderer?.Dispose();
+ renderer = null;
}
// Let the EstimatedHeight method know to use this value.
diff --git a/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs b/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs
index ee16328b..5eb29d03 100644
--- a/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs
+++ b/Xamarin.Forms.Platform.iOS/VisualElementRenderer.cs
@@ -251,11 +251,11 @@ namespace Xamarin.Forms.Platform.MacOS
_packager = null;
}
- // The ListView can create renderers and unhook them from the Element before Dispose is called.
+ // The ListView can create renderers and unhook them from the Element before Dispose is called in CalculateHeightForCell.
// Thus, it is possible that this work is already completed.
if (Element != null)
{
- Platform.SetRenderer(Element, null);
+ Element.ClearValue(Platform.RendererProperty);
SetElement(null);
}
}