Skip to content

Releases: scenee/FloatingPanel

1.7.5

03 Jun 23:20
Compare
Choose a tag to compare

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

29 Feb 09:43
f909cd4
Compare
Choose a tag to compare

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

30 Jan 00:19
Compare
Choose a tag to compare

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

23 Nov 03:36
Compare
Choose a tag to compare

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

05 Oct 04:53
Compare
Choose a tag to compare

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 and showContainerMargins 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

28 Sep 02:17
Compare
Choose a tag to compare

It includes some maintenance updates. It is the last release in 1.6.x.

Improvements

  • Clean up code
  • Support Xcode 11 and Swift 5.1

Bugfixes

  • Fix iOS 13 issues

v1.6.5

31 Aug 04:48
Compare
Choose a tag to compare

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

09 Aug 14:50
Compare
Choose a tag to compare

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

26 Jul 14:00
Compare
Choose a tag to compare

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

v1.6.2

25 Jul 08:10
Compare
Choose a tag to compare

Bugfixes

  • Fix the scroll indicator lock on a contentVC reset
  • Refactor FloatingPanel and FloatingPanelLayoutAdapter a bit by the new unit tests.
  • Prevent potential 'unexpectedly found nil' fatal error