Skip to content

0.8.0

Compare
Choose a tag to compare
@erichoracek erichoracek released this 28 Jul 15:11
· 47 commits to master since this release

Added

  • Added SwiftUIMeasurementContainer for calculating the ideal height of a UIView for wrapping
    for SwiftUI usage.
  • Added MeasuringUIViewRepresentable as a convenience API for measuring a UIView within a
    UIViewRepresentable using an enclosing SwiftUIMeasurementContainer.
  • Added a method to CollectionViewReorderingDelegate to check the reordering destination is
    expected.
  • Added the ability to pass a CollectionViewConfiguration to the CollectionViewController
    initializers.
  • Added additional sizing behaviors to SwiftUIMeasurementContainer for sizing UIViews hosted in
    a SwiftUI View.
  • Added a static swiftUIView(…) method to UIView for hosting UIKit views that aren't
    EpoxyableViews while still leveraging the layout helpers.
  • Added support for calling configure { _ in } on the SwiftUI View resulting from a
    swiftUIView(…) invocation to perform additional configuration of the UIView instance.
  • Added LayoutGroupUpdateAnimation for customizing Group animated updates.
  • Added support for WillDisplay callbacks to be added to type-erased AnyBarModel types.

Fixed

  • Fixed sizing of reused EpoxySwiftUIHostingControllers on iOS 15.2+.
  • Fixed crash in ScrollToItemHelper caused by preferredFrameRateRanges on devices running iOS
    15.0 (this issue is not present in devices on 15.1+)
  • Fixed an ambiguous layout issue when using LayoutSpacer without a fixedWidth or fixedHeight.
  • Gracefully support cases where a SwiftUIMeasurementContainer with an intrinsicSize
    SwiftUIMeasurementContainerStrategy has an intrinsic size that exceeds the proposed size by
    compressing rather than overflowing, which could result in broken layouts.
  • Fixed intrinsic size invalidation triggered by a SwiftUI view from within a collection view
    cell by invalidating the enclosing collection view layout.
  • Fixed an issue where EpoxyLogger.shared.assertionFailure and EpoxyLogger.shared.assert would
    unexpectedly crash in release builds.

Changed

  • Updated name of Spacer to LayoutSpacer to avoid name conflict with SwiftUI's Spacer
  • Updated to have Swift 5.4 as the minimum supported Swift version (previously Swift 5.3).
  • Updated HGroupView and VGroupView to have insetsLayoutMarginsFromSafeArea = false by default
  • Gated an old autoresizing-mask-related bug workaround to only run on iOS versions 13 and below
  • The swiftUIView(…) methods now default to an automatic sizing behavior that makes a best effort
    at sizing the view based on heuristics, rather than defaulting to intrinsic height and proposed
    width.