Releases: scenee/FloatingPanel
2.5.0
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
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
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
Thank you to @AustinConlon and @codingiran for this release!
2.4.0
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 nowfloatingPanelDidChangeState
.- 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
2.3.0
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
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 toBehavior
(#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
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
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
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
withsurfaceLocation
- Enable to update
layout
andbehavior
directly - Update scroll tracking API a bit to support multiple scroll view tracking in the future.
- Replace
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:)
- Change
FloatingPanelLayout
- Introduce
FloatingPanelLayoutAnchoring
for the more flexible layout.- Add a factional panel position in the
FloatingPanelController
view - Replace
FloatingPanelFullScreenLayout
andFloatingPanelIntrinsicLayout
- Add a factional panel position in the
- Introduce
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
- You can control the panel max/min position in
SurfaceView
- Use
SurfaceAppearnace
to specify the rounding corners, shadow and background color.
- Use
FloatingPanelPanGestureRecognizer
- Add
delegateProxy
to intercept the gesture recognizer delegate.
- Add
- Improve API naming
FloatingPanelPosition
is nowFloatingPanelState
- Now
FloatingPanelPosition
is used to specify the panel positioning in a screen.
- Now
FloatingPanelGrabberHandleView
is nowGrabberView
(Swift only)FloatingPanelSurfaceView
is nowSurfaceView
(Swift only)FloatingPanelBackdropView
is nowBackdropView
(Swift only)- "decelerate" term is replaced with "attract" because the spring behavior is actually magnetic
- Misc
- Add
UISpringTimingParameters(decelerationRate:frequencyResponse:initialVelocity:)
- Add
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
- You can enable it to set
- Disable the dismissal action of backdrop by default
1.7.6
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!