diff --git a/Xamarin.Forms.Platform.iOS/Extensions/UIViewExtensions.cs b/Xamarin.Forms.Platform.iOS/Extensions/UIViewExtensions.cs index 57672f96d24..bd7f49de65d 100644 --- a/Xamarin.Forms.Platform.iOS/Extensions/UIViewExtensions.cs +++ b/Xamarin.Forms.Platform.iOS/Extensions/UIViewExtensions.cs @@ -88,8 +88,18 @@ internal static IEnumerable DescendantsTree(this UIView self) else s = self.FittingSize; #endif - var request = new Size(s.Width == float.PositiveInfinity ? double.PositiveInfinity : s.Width, - s.Height == float.PositiveInfinity ? double.PositiveInfinity : s.Height); + + var width = s.Width; + var height = s.Height; + + if (nfloat.IsNaN(width)) + width = float.PositiveInfinity; + + if (nfloat.IsNaN(height)) + height = float.PositiveInfinity; + + var request = new Size(width == float.PositiveInfinity ? double.PositiveInfinity : width, + height == float.PositiveInfinity ? double.PositiveInfinity : height); var minimum = new Size(minimumWidth < 0 ? request.Width : minimumWidth, minimumHeight < 0 ? request.Height : minimumHeight); return new SizeRequest(request, minimum);