Skip to content

Releases: scenee/FloatingPanel

2.5.0

28 Sep 11:31
Compare
Choose a tag to compare

This release is a huge step for SwiftUI support of this library. I hope you would try SwiftUI APIs in Maps-SwiftUI app and give us your feedback.

Improvements

  • Add SwiftUI APIs(proof of concept) in Maps-SwiftUI example (#481) by @zntfdr

Note: The SwiftUI APIs are not included in the library because of an issue of SwiftUI's environment propagation. They are going to be released as official APIs for SwiftUI when it will be fixed.

Bugfixes

  • Fix a crash in Samples app on iPad (#497) by @milettal
  • Fix a tab bar appearance in Samples app on iOS 15 (#504)

Thank you to @zntfd, @milettal and @HappyIosDeveloper for this release!

2.4.1

18 Sep 03:03
Compare
Choose a tag to compare

This release has a bug fixe and a improvement. This release is also checked on Xcode 13.

Improvement

  • Fix objc can not obtain dismissalTapGestureRecognizer (#496)

Bugfixes

  • Keep the panel's pan gesture disabled (#485, #486)

Thank you to @AustinConlon and @codingiran for this release!

2.4.0

05 Jun 06:00
Compare
Choose a tag to compare

This release has a bug fixe and some improvements. It doesn't have any major behavior updates, but some API changes. So please check the following API changes because you might some changes in your code.

API Changes

  • floatingPanelDidChangePosition is now floatingPanelDidChangeState.
  • Added a completion handler in addPanel(toParent:) (#402)

Improvement

  • Revised LayoutAdapter implementation
  • Updated README for the backdrop tap-to-dismiss action

Bugfixes

  • Fixed a regression for the backdrop behavior (#466)

Thank you to @ziv-mishloha and @sipersso for this release!

2.3.1

10 May 12:25
Compare
Choose a tag to compare

This release has a bug fixe and some improvements including refactoring code.

Improvements

  • Improve the function rounding a dimension by a display scale
  • Clean up Extensions.swift
  • Refactor code of the samples app

Bugfixes

  • Fix the backdrop flickering (#449)

2.3.0

27 Feb 00:20
Compare
Choose a tag to compare

This release has an enhancement and bugfixes including a critical issue. This is highly recommended to upgrade.

Improvements

  • Enable to add custom panel states (#438)

Bugfixes

  • Fix workaround to precent bouncing a scroll content in a content view
  • Prevent the potential memory leaks in the modal transition (#429)
  • Remove class keyword
  • Prevent a memory leak in a nested function (#441)

Thank you to @i-arun-samui and @mschonvogel for this release!

2.2.0

24 Jan 06:59
Compare
Choose a tag to compare

This release introduces 2 new APIs and has some improvements and bugfixes for crashes. This is highly recommended to upgrade.

New features

  • Add cornerCurve option to SurfaceAppearance (#417) via @zntfdr
  • Add optional removalInteractionVelocityThreshold value to Behavior (#425) via @Argent

Improvements

  • Add a description for the backdropAlpha(for:) API (#416)
  • Address the grabber area detection in scroll tracking (#407)
  • Stop moving a panel while the tracking table view is editing (#431)
  • Revise the swizzling prop to make it nonnull
  • Move the main ci to github actions (#437)

Bugfixes

  • Fix example typo (#418) via @zntfdr
  • Fix swiftformat (#426) via @funzin
  • Fix a crash by the move animator (#423)
  • Fix an issue where not dragging a panel by priority of Layout.interactionConstraint (#428)
  • Fixed the crash when ownerVC is nil. (#436) via @nickcheng

Thank you to @zntfdr, @Argent, @warpling, @jnwagstaff, @WrathChaos, @mazvydasb, @funzin, @mschonvogel, @Distance-MJ and @nickcheng for this release!

2.1.0

12 Dec 02:57
Compare
Choose a tag to compare

v2.1.0 introduces some new features. I welcome your feedback!

New features

  • FloatingPanelAdaptiveLayoutAnchor
    • This new anchor layouts a panel respecting the content size represented by an UILayoutGuide object.
    • This is a great potential up to you. See 'Show Adaptive Panel' example in the Samples app.
  • Add the default behavior for the escape action of Accessibility.

Improvements

  • Open FloatingPanelDefaultBehavior class to allow to inherit it.

Bugfixes

  • Update readme url for Transitioning.swift (#398)

Thank you to @warpling, @takaoh717, @groue and @kevinrenskers for this release!

2.0.1

21 Oct 11:27
Compare
Choose a tag to compare

This version includes some major bug fixes so it is recommended to upgrade from 2.0.0.

Bug fixes

  • Add missing commas in migration guide #387 by @zntfdr
  • Ease the default velocity for a panel removal #395
  • Reset the moveAnimator prop after a move animation #396

Thanks you to @zntfdr, @aclassen, @sipersso and @mstana for this release!

2.0.0

02 Oct 23:51
Compare
Choose a tag to compare

FloatingPanel 2.0 is the latest major release of FloatingPanel. As a major release, following Semantic Versioning conventions, 2.0 introduces API-breaking changes.

The migration guide is provided in order to ease the transition of existing applications using FloatingPanel 1.x to the latest APIs, as well as explain the design and structure of new and updated functionality.

Thank you for all users and contributors of this library. This version has been completed with your contributions and feedback. I continue to welcome your feedback.

Environment updates

  • Swift 5.0 or later
  • iOS 11 or later(iOS 10 might be working)
  • Update the directory structure and file names

Feature updates

  • Support top, left and right positions of the panel
  • Add ObjC compatibility
  • Improve the layout customization
  • Improve the behavior customization to handle it like UIScrollView
  • Improve the remove interaction
  • Fix many issues depending on API design

API updates

  • FloatingPanelController
    • Replace surfaceOriginY with surfaceLocation
    • Enable to update layout and behavior directly
    • Update scroll tracking API a bit to support multiple scroll view tracking in the future.
  • FloatingPanelControllerDelegate
    • Change floatingPanel(_:didMove:) behavior which is also called in the spring animation.
    • Update removal interaction delegate
      • Enable a panel to invoke the removal action at any state(position)
      • Add 
floatingPanel(_:shouldRemoveAt:with:) to determine whether it invokes the removal interaction.
    • Add floatingPanelDidEndDragging(_ vc:willAttract:)
  • FloatingPanelLayout
    • Introduce FloatingPanelLayoutAnchoring for the more flexible layout.
      • Add a factional panel position in the FloatingPanelController view
      • Replace FloatingPanelFullScreenLayout and FloatingPanelIntrinsicLayout
  • FloatingPanelBehavior
    • Introduce the new spring effect using Numeric springing
    • Add properties to contorl numeric springing
    • Remove .topInteractionBuffer/.bottomInteractionBuffer
      • You can control the panel max/min position in floatingPanel(_:didMove:) delegate method
  • SurfaceView
    • UseSurfaceAppearnace to specify the rounding corners, shadow and background color.
  • FloatingPanelPanGestureRecognizer
    • Add delegateProxy to intercept the gesture recognizer delegate.
  • Improve API naming
    • FloatingPanelPosition is now FloatingPanelState
      • Now FloatingPanelPosition is used to specify the panel positioning in a screen.
    • FloatingPanelGrabberHandleView is now GrabberView (Swift only)
    • FloatingPanelSurfaceView is now SurfaceView (Swift only)
    • FloatingPanelBackdropView is now BackdropView (Swift only)
    • "decelerate" term is replaced with "attract" because the spring behavior is actually magnetic
  • Misc
    • Add UISpringTimingParameters(decelerationRate:frequencyResponse:initialVelocity:)

Behavior updates

  • Layout
    • FloatingPanel doesn't disable constraints to Safe area in a content view so that the behavior of a content view always respects Safe area which is global in a screen. If it's not clear, please try Samples.app > Detail Panel and swipe it up to full state.
  • BackdropView
    • Disable the dismissal action of backdrop by default
      • You can enable it to set fpc.backdropView.dismissalTapGestureRecognizer.isEnabled = true

1.7.6

19 Sep 03:00
Compare
Choose a tag to compare

This is the last release of v1. This includes some bug fixes and the removal interaction update.

Behavior change

  • Enable the removal interaction at any positions upon the conditions (#335)

Bug fixes

  • Fix quick pull down (#385)
  • Use 'prominent' blur effect in Maps sample (#379)
  • Small typo fixes (#378)
  • Update README.md sample code (#371, #367)

Thank you to @lekom, @knchst, @jstart, @ghazel and @michalraska for this release!