Releases: scenee/FloatingPanel
v1.6.1: Support SwiftPM on Xcode11!
Improvements
- Add Swift Package Manager support by @robbiet480
Bugfixes
- Fix the crash while closeing via dragging #216
- Fix closing panel during internal scroll view bounce #218
- Remove workaround for tableView(_:didSelectRowAt:) issue #225
- Fix an unexpected layout update in the background on iOS13 #228
Thank you to @robbiet480 for your SwiftPM support!
Thank you to @cozzin, @heltisace and @Isuru-Nanayakkara for your issues and cooperations!
v1.6.0: Enhanced FloatingPanelSurfaceView
New features
FloatingPanelSurface
Add new excellent APIs by @nderkach and @SvenTiigi to make the layout flexible
- Customize the grabber layout
+ public var grabberTopPadding: CGFloat
+ public var grabberHandleWidth: CGFloat
+ public var grabberHandleHeight: CGFloat
- Customize the container top inset.
+ public var containerTopInset: CGFloat
- Customize a content layout from the container.
+ public var contentInsets: UIEdgeInsets
FloatingPanelBehavior
- Add rubber band effect for top and bottom edge
+ func allowsRubberBanding(for edge: UIRectEdge) -> Bool
Changes
FloatingPanelSurface
- Replace some properties as a constant stored property
- public var grabberHandle: GrabberHandleView!
+ public let grabberHandle: GrabberHandleView = GrabberHandleView()
- public var containerView: UIView!
+ public let containerView: UIView = UIView()
- Modify
containerView.layer.masksToBounds
behavior oncornerRadius
changed. See here more detail.
Improvements
- Add some unit tests on iOS 10, 11 and 12 in CI.
Bugfixes
- Calling FloatingPanel.move(to:animated:completion:) locks scroll view #198
- Weird crashes happen when FloatingPanel was updated from v1.4.1 to 1.5.x #206
- A UIVisualEffectView in a content VC isn't working on iOS10
Thank you to @nderkach and @SvenTiigi for your proposal and PR!
Thank you to @mattt, @Isuru-Nanayakkara and @mergesort for your helpful issues and cooperations!
v1.5.1
This release includes some improvements and bug fixes✨ 🎉 ✨
Improvements
- Allow subclassing FloatingPanelController #173
- Add a sample code for panels in PageViewController #172
- Rename
backgroudView
withcontainerView
inFloatingPanelSurfaceView
- public var backgroundView: UIView!
+ public var containerView: UIView!
- Remove obsolete
SWIFT_WHOLE_MODULE_OPTIMIZATION
setting from FloatingPanel.podspec - Fix typo
Bugfixes
- Fix the mask bounds of the surface view #190
- Fix touch cancelling on first tap after a moving animation #164
Thank you to @zntfdr for your improvements!
Thank you to @xysverma, @GerdC, @peterstojanowski, @RpX974, @congmn and @ThangTruong921 for your helpful issue reports and cooperations!
v1.5.0: Support Swift 5.0
Now FloatingPanel supports Swift 5.0. 🎉✨✨ #177
See also README > Requirements 👍
All examples are upgraded to Swift 5.0, but the default Swift version of the library leaves Swift 4.0 because it avoids build errors with Carthage on each Xcode version from the source compatibility between Swift 4.0, 4.2 and 5.0. (All of Xcode 9.4.1+ support Swift 4.0)
With regard to CocoaPods, for now, a user needs to override SWIFT_VERSION appropriately in Podfile. But after CocoaPods v1.7.0, the pod spec is going to support swift_versions
key and then you won't need it.
v1.4.1
This release includes many improvements and bug fixes✨ 🎉 ✨
Improvements
- Remove swapping scroll delegate #128
- For example, it allows you to use ASCollectionNode of Texture (http://texturegroup.org/).
- Allow to use
.hidden
position as an initial one #150
var initialPosition: FloatingPanelPosition {
return .hidden
}
- Open FloatingPanelSurfaceView.backgroundView #169
- private var backgroundView: UIView!
+ public var backgroundView: UIView!
Bugfixes
- Fix retain cycle in FloatingPanel #158
- Fix interruption #159
- Fix UI Extension #165
- Fix scroll fitting #180
- Fix typo #162
- Fix Jump while dragged up or down #154
- Fix half mode panel is dragged to the top of the screen #167
Thank you to @trispo, @bryansum, @zntfdr for your improvements and bugfixes!
Thank you to @djdance, @muukii , @vovkaprigarin, @andreaslindahl, @musa-almatri for your helpful issue reports and cooperations!
v1.4.0
This release includes some new features and improvements to enhance the panel interaction ✨ 🎉 ✨
Now you can..
- Change a panel's width with AutoLayout in moving it(See Samples.app -> Show Tab Bar -> Tab 3). Because a panel frame is always changed using Auto Layout. It will be able to let you configure more flexible layout of a moving panel with FloatingPanelLayout improvement in the future.
- Stop beginning a panel dragging by
floatingPanelShouldBeginDragging
delegate method - Jump over a half position by interaction(i.e. from tip to full and vise versa) using
FloatingPanelBehavior.shouldProjectMomentum(_:for:)
- Configure a panel layout using
FloatingPanelFullScreenLayout
without bothering about SafeArea stuffs.
New Features
FloatingPanelControllerDelegate
Add floatingPanelShouldBeginDragging(_:)
. You can stop to begin dragging on the conditions. It's useful to handle other pan gestures or touches simultaneously with a floating panel.
+ public func floatingPanelShouldBeginDragging(_:)
FloatingPanelBehavior
Add 2 methods to configure the momentum projection
+ func shouldProjectMomentum(_ fpc: FloatingPanelController, for proposedTargetPosition: FloatingPanelPosition) -> Bool`
+ func momentumProjectionRate(_ fpc: FloatingPanelController) -> CGFloat
FloatingPanelFullScreenLayout
You can configure all insets of the surface from the superview(FloatingPanelController.view), not from the safe area.
Improvements
FloatingPanelController
Enable to cancel the scroll view tracking
- public func track(scrollView: UIScrollView) {
+ public func track(scrollView: UIScrollView?) {
Core
- Move the surface view by a top layout constraint, not by modifying the frame directly.
- Normalize the projected position
- Modify disabling the bottom constraint on top overflow.
- Revamp Scroll draw-down interaction by a tracking scroll view. It becomes more smooth
Layout/Behavior
- Open the default layout/behavior
Samples
- Add a sample of the advanced layout animation
Bugfixes
- Fix #133: FloatingPanel can be dragged outside safe area (with new logic)
v1.3.5
This release has major bugfixes and improvements for the panel interaction 👍
This is going to be last release for v1.3.x. v1.4.0 will be released soon to support sparking-joy features requested in issues.
Improvements
- Don't block tap/long press gestures(Always recognize them in parallel)
- Stop interrupting a content offset of a tracking scroll view at the end of an interaction
Bugfixes
- Fix the wrong layout update in iOS10
- Fix a buggy scroll offset of a tracking scroll view
- Fix the animation interruption (Now a user can use an interruptive animation safely)
- Fix backdrop handling on an animation interrupt
- Fix dragging outside safe area #133
v1.3.4
v1.3.3
This release has some bugfixes💪
Thanks to @mergesort, @datwelk, @lohenyumnam contributions 🥇
Bugfixes
- Expand the surface mask's height #123 to prevent cutting off a content #112
- Fix the presentation modally when fpc is reused #122
- Restore original scroll view delegate when updating content VC #114 @datwelk
Experimental feature
FloatingPanelFullScreenLayout
- Display a surface view with a full inset from the superview.
v1.3.2
This release includes some bugfixes💪
Thanks to @mergesort, @Pivovar63, @fmessina, @CedricGatay contributions 🥇
New API
- Add
FloatingPanelController.init(delegate:)
Improvements
- Support Swift 4.1 & Xcode 9.4