Releases: scenee/FloatingPanel
1.7.5
v1.7.5 has a bunch of bug fixes. There is no update to change the behavior and specs. So it's recommended to upgrade from v1.7.x
Bug fixes
- Fix a build error on Xcode 11.4 (#337)
- Support the initial hidden position not including the supported positions (#344, #345)
- Fix an invalid indicator insets of the tracking scroll view (#346)
- Fix the memory leak of FloatingPanelController object (#347, #350)
- Avoid the invalid safe area insets in a table view with static cells (#330, #353)
- Fix the animation velocity's sign (#354)
- Fix {top,bottom} constant's boundary in updating panel interactively (#349, #352)
- Fix the panel behavior in a sheet modal (#358)
- Fix the constraints break on fitToBounds mode (#359)
Thank you to @Isuru-Nanayakkara, @alexander-lsvk, @mhdhejazi, @kohei1218, @chriskilpin, @FlashTang and @GrigoryUlanov for this release!
1.7.4
This release has a hotfix for v1.7.3 as follows.
(v1.7.3 has already been removed v1.7.3 from GitHub and CocoaPods. )
Improvements
- Ignore .swiftpm/ folde by @zntfdr
Bugfixes
- Fix floatingPanel(_:contentOffsetForPinning:) delegate name
Thank you so much to @zntfdr.
1.7.3
This release includes a new delegate method and bug fixes. It is highly recommended to upgrade if you use v1.7.2 or display multiple panels overlapping.
New APIs
- Add floatingPanel(_:contentOffsetForPinning:) delegate method (#314)
func floatingPanel(_ vc: FloatingPanelController, contentOffsetForPinning trackedScrollView: UIScrollView) -> CGPoint
Bug fixes
- Fix an issue where the pan gesture recognizer doesn't work well when multiple panels are displayed #308, #320.
- Fix a breaking content offset of the tracked scroll view #293
- Minor README.md typo #316
- Fix a run script error #319
Thank you to @fedorpashin, @kohei1218, @lucio1392, @jacksonjude and @richardgroves for this release!
1.7.2
This release includes a new API and many bug fixes. As usual this is recommended to upgrade. Thank you.
New API
Improvements
- Return the child view controller to consult #311
Bugfixes
- Fix Maps.app's crash on device after the second launch
- Fix a panel's move-up in dragging it down
- Fix grabber area behavior
- Fix not calling floatingPanelDidEndDecelerating when an decelerating animation interrupted
- Make floatingPanelDidEndDragging's velocity zero when it won't be decelerated.
Thank you to @ramrcram and @lucio1392 for this release!
1.7.1
I'm proud to announce the release of FloatingPanel 1.7.1. Some great improvements has been made. I recommend to upgrade to this version. Thank you.
Improvements
- Enable the swift module interfaces #287
- If you build a framework from the source code on Xcode 11 or later, it has the module stability in Swift.
- Improve the surface position evaluation and top scroll bouncing of content by @dmytrofrolov1 #272
- Polish README by @peka2, @TadeasKriz
Bugfixes
- Fix addPanel(toParent:) #290
Thank you to @dmytrofrolov1, @peka2 and @TadeasKriz for this release!
v1.7.0: Add new and enhanced APIs
This release includes the new APIs to enhance the use cases. ✨ 🎉 ✨
And now FloatingPanel.podspec uses swift_versions
! So CocoaPods v1.7.0 or later is required for the installation.
I would like to continue to enhance this UI component with you. Welcome to your report and PR.
New APIs
FloatingPanelController
var contentMode: FloatingPanelController.ContentMode
changes.
public enum ContentMode: Int {
case `static`
case fitToBounds
}
This allows to change the surface height as following a user interaction and fix the bottom of a panel. For example, you can display a fixed footer view upon Auto Layout constraints.
See also Show Detail Panel
sample in Samples.app.
✏️ In .fitToBounds
mode, you have a responsibility to configure Auto Layout constrains not to break the layout of a content view by the elastic surface height.
FloatingPanelSurfaceView
var containerMargins: UIEdgeInsets
This allows to modify the surface container margins. For example, the following use cases.
- Facebook/Slack-like panel whose surface top edge is separated from the grabber handle.
- iOS native panel to display AirPods information.
See also showContainerMargins
sample in Samples.app.
FloatingPanelBackdropView
var dismissalTapGestureRecognizer: UITapGestureRecognizer!
This allows to disable tap on backdrop view for panel dismissal. by @nderkach
FloatingPanelLayout
var positionReference: FloatingPanelLayoutReference
public enum FloatingPanelLayoutReference: Int {
case fromSafeArea = 0
case fromSuperview = 1
}
This allows to change the referred bounds used to calculate each position from FloatingPanelLayout.insetFor(_:)
Improvements
- Add fitToBounds content mode
- Add support for CocoaPods version 1.7 swift_version by @joshuafinch
- Add 2 samples,
showPageContentView
andshowContainerMargins
in Samples.app - Add test cases for new features
Bufixes
- Call floatingPanelDidEndRemove when dismiss with tap on backdrop view by @rikusouda
Thank you to @joshuafinch @nderkach and @rikusouda for this release!
v1.6.6
v1.6.5
Improvements
- Return true for FloatingPanelSurfaceView.requiresConstraintBasedLayout
- Update README for UISearchController issue #248
- Add move-to-hidden tests
- Don't unregister safeAreaInsetsObservation in hide()
- Improve floatingPanelDidChangePosition and tigger it on removal by David Hart
- Support bottom content inset for container view (#257) by @nderkach
Bugfixes
- Samples App: Fix UISearchBar's _searchField access #243
Thank you to David Hart, @nderkach, @swiftymf and @roblabs for this release!
v1.6.4
This release contains some bugfixes for the animation interruption.
Bugfixes
- Fix not calling floatingPanelDidEndDecelerating delegate after interruption
- Always call startInteraction before endInteraction to keep the delegate call convention.
- Fix stopping a panel b/w anchors after an interruption
v1.6.3: Revamp the core logic
This has a bunch of bugfixes and improvements. It's more stable than the earlier versions.
The core logic was refactored along with many new unit tests and then the position handling, scroll lock and animation interruption become robust. I highly recommend to upgrade to the version.
This is a big milestone to go to the next step, which is the initial version supporting the elastic height and top-to-bottom layout.
Improvements
- Add unit tests for the layout and the animation logic.
- Refactor the core logic for the next features.
- Revise the doc comments.
Bugfixes
- Fix the
.hidden
position handling. Now you can use.hidden
position as well as other positions. - Fix the scroll lock and unlock when an animation interrupted.
- Fix a bug of the removal interaction.
- Fix the behavior when the animation is interrupted over the top most position.
- Fix an ambiguous layout error after swiping down from full to half position.
- Stop the top edge bounce when a tracking scroll is decelerating using an interruptible animator.
- Fix the SafeArea update
- Fix scroll lock just before/after dragging down in the grabber area