diff --git a/src/Core/src/Platform/iOS/IPlatformMeasureInvalidationController.cs b/src/Core/src/Platform/iOS/IPlatformMeasureInvalidationController.cs index 5b41012335c0..d95ebd82ac84 100644 --- a/src/Core/src/Platform/iOS/IPlatformMeasureInvalidationController.cs +++ b/src/Core/src/Platform/iOS/IPlatformMeasureInvalidationController.cs @@ -1,7 +1,20 @@ namespace Microsoft.Maui.Platform; -internal interface IPlatformMeasureInvalidationController +/// +/// Provides platform-specific measure invalidation control for iOS views. +/// +public interface IPlatformMeasureInvalidationController { + /// + /// Schedules measure invalidation to occur when the view is moved to a window. + /// This is used to handle scenarios where invalidation is attempted before the view is attached to a window. + /// void InvalidateAncestorsMeasuresWhenMovedToWindow(); + + /// + /// Invalidates the current view via SetNeedsLayout and returns whether to continue propagating the invalidation to ancestors or not. + /// + /// True if this invalidation is being propagated from a descendant view, false if this is the initial view that triggered the invalidation. + /// True to continue propagating invalidation to ancestor views, false to stop propagation. bool InvalidateMeasure(bool isPropagating = false); } \ No newline at end of file diff --git a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt index ca4e784fc56f..e686f2261828 100644 --- a/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt @@ -1,4 +1,8 @@ -#nullable enable +#nullable enable +Microsoft.Maui.Platform.IPlatformMeasureInvalidationController +Microsoft.Maui.Platform.IPlatformMeasureInvalidationController.InvalidateAncestorsMeasuresWhenMovedToWindow() -> void +Microsoft.Maui.Platform.IPlatformMeasureInvalidationController.InvalidateMeasure(bool isPropagating = false) -> bool +virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object! Microsoft.Maui.Converters.SafeAreaEdgesTypeConverter Microsoft.Maui.Converters.SafeAreaEdgesTypeConverter.SafeAreaEdgesTypeConverter() -> void Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.ContextFlyoutItemHandlerUpdate(Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate! original) -> void @@ -223,7 +227,6 @@ static Microsoft.Maui.SwipeViewSwipeEnded.operator !=(Microsoft.Maui.SwipeViewSw static Microsoft.Maui.SwipeViewSwipeEnded.operator ==(Microsoft.Maui.SwipeViewSwipeEnded? left, Microsoft.Maui.SwipeViewSwipeEnded? right) -> bool static Microsoft.Maui.SwipeViewSwipeStarted.operator !=(Microsoft.Maui.SwipeViewSwipeStarted? left, Microsoft.Maui.SwipeViewSwipeStarted? right) -> bool static Microsoft.Maui.SwipeViewSwipeStarted.operator ==(Microsoft.Maui.SwipeViewSwipeStarted? left, Microsoft.Maui.SwipeViewSwipeStarted? right) -> bool -virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object! virtual Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.$() -> Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate! virtual Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.EqualityContract.get -> System.Type! virtual Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.Equals(Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate? other) -> bool diff --git a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt index 1fe30abd2aa9..665bf2f16d47 100644 --- a/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt +++ b/src/Core/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt @@ -1,4 +1,8 @@ -#nullable enable +#nullable enable +Microsoft.Maui.Platform.IPlatformMeasureInvalidationController +Microsoft.Maui.Platform.IPlatformMeasureInvalidationController.InvalidateAncestorsMeasuresWhenMovedToWindow() -> void +Microsoft.Maui.Platform.IPlatformMeasureInvalidationController.InvalidateMeasure(bool isPropagating = false) -> bool +virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object! Microsoft.Maui.Converters.SafeAreaEdgesTypeConverter Microsoft.Maui.Converters.SafeAreaEdgesTypeConverter.SafeAreaEdgesTypeConverter() -> void Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.ContextFlyoutItemHandlerUpdate(Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate! original) -> void @@ -226,7 +230,6 @@ static Microsoft.Maui.SwipeViewSwipeEnded.operator !=(Microsoft.Maui.SwipeViewSw static Microsoft.Maui.SwipeViewSwipeEnded.operator ==(Microsoft.Maui.SwipeViewSwipeEnded? left, Microsoft.Maui.SwipeViewSwipeEnded? right) -> bool static Microsoft.Maui.SwipeViewSwipeStarted.operator !=(Microsoft.Maui.SwipeViewSwipeStarted? left, Microsoft.Maui.SwipeViewSwipeStarted? right) -> bool static Microsoft.Maui.SwipeViewSwipeStarted.operator ==(Microsoft.Maui.SwipeViewSwipeStarted? left, Microsoft.Maui.SwipeViewSwipeStarted? right) -> bool -virtual Microsoft.Maui.Animations.Lerp.LerpDelegate.Invoke(object! start, object! end, double progress) -> object! virtual Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.$() -> Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate! virtual Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.EqualityContract.get -> System.Type! virtual Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate.Equals(Microsoft.Maui.Handlers.ContextFlyoutItemHandlerUpdate? other) -> bool