Shin Yamamoto
38359e25ad
v2.0
...
* Core
* Support bottom/left/right positioned panel.
* Replace FloatingPanelPosition with FloatingPanelState
* Redefine FloatingPanelPosition
* Fix pan interaction of the intrinsic layout
* Allow to modify a target position
* Fix floating point problem
* Use UIScrollView.adjustedContentInset by default
* Add shouldDecelerate(to:)
* Rename contentOrigin to contentOffsetForPinning
* Improve initialLocation
* Introduce numeric springing
* Support moving a panel with numeric springing
* Update FloatingPanelBehavior
* Remove {top,Bottom}InteractionBuffer from FloatingPanelLayout
* Remove the move animator to be same as UIScrollView behavior
* Add floatingPanelDidMove(_:) tests in calling move(to:animated:)
* Update FloatingPanelControllerDelegate
* Move {add,remove}PanelAnimator delegation
* Add FloatingPanelBehaviorAdapter
* Modify access to `behavior` prop
* Update FloatingPanelLayout
* Support bottom/left/right positioned panel.
* Add anchoredPosition property
* Introduce FloatingLayoutAnchor & FloatingPanelIntrinsicLayoutAnchor
* Add FloatingPanelReferenceEdge
* Rename FloatingPanelDefaultLayout to FloatingPanelBottomLayout
* Update FloatingPanelLayoutAdapter
* Add LayoutAdapter.sortedDirectionalPositions
* Reimplement positionY(for:)
* Add edge{most,least}state
* Add orderedStates
* Add edge{Most,Least} properties in LayoutAdapter
* Modify `bottomOverflow` value and rename it to `containerOverflow`
* Modify access to `layout` prop
* Add FloatingPanelLayoutAnchoring/LayoutAnchor/IntrinsicLayoutAnchor
* Add FloatingPanel{Intrinsic}LayoutAnchor tests
* Update FloatingPanelController
* Add surfaceLocation
* update addPanelToParent API
* Update layout reloading logic
* Rename updateLayout() to invalidateLayout()
* Fix contentViewController access level
* Update FloatingPanelControllerDelegate
* Add floatingPanelDidEndDragging(_ vc:willDecelerate:)
* Update floatingPanelWillBeginDecelerating delegate method
* Remove behavior delegate method
* Reimplement the removal action
* Use floatingPanel(_:shouldRemoveAt:with:) delegate
* Update SurfaceView
* Support bottom/left/right positioned panel.
* Add FloatingPanelSurfaceAppearance
* Add SurfaceView.intrinsicContentSize
* Rename FloatingPanelSurfaceView.add(contentView:)
* GrabberHandle for bottom edge grabber
* Rename GrabberHandleView to FloatingPanelGrabberView
* Rename containerMargin & contentInsets to content{Margins,Padding}
* Rename bottomOverflow to containerOverflow
* ObjC Support
* Add @objc to FloatingPanelControllerDelegate
* Add @objc to FloatingPanelController
* Use @objc protocol FloatingPanelBehavior
* Redefine FloatingPanelState for objc.
* Update Utils
* Modify logger prefix
* Update extensions for left/right positions
* Update unit tests
* Update layout tests
* Add test_surfaceView_{contentView,containerView}
* Add test_positionY_top2bottom()
* Add test_moveTo_bottomEdge()
* Update test_warningRetainCycle()
* Fix FloatingPanelControllerTests
* Fix LayoutTests
* Fix FloatingPanelStateTests
* Fix FloatingPanelTest
2020-07-11 09:48:25 +09:00
Shin Yamamoto
2cf63838ae
Drop preserveContentVCLayoutIfNeeded()
2020-07-11 09:48:25 +09:00
Shin Yamamoto
aaeb752911
No need to recognize both of the pan gesture and dismiss gesuter of sheet modal
2020-05-30 10:11:12 +09:00
Shin Yamamoto
7bbc3d5910
fix the behavior in a sheet modal
2020-05-23 08:12:01 +09:00
Shin Yamamoto
a09a0e9e32
fix the animation velocity's sign ( #354 )
...
Using a directional distance to calculate an animation velocity fixes an
issue where a panel's animation was wrong when a user swipes up a panel
at the top most position.
2020-05-16 09:18:59 +09:00
Shin Yamamoto
7d90458d99
Support the initial hidden position not including the supported positions ( #345 )
2020-04-29 14:20:49 +09:00
Federico Zanetello
8c24aa3fc9
fix api typo ( #325 )
...
fixes floatingPanel(_ vc: FloatingPanelController, contentOffsetForPinning) name
2020-02-29 13:18:09 +09:00
Shin Yamamoto
2a91145366
Fix breaking content offset of the tracked scroll view ( #315 )
...
* Convert the tracked scroll view frame to the surface coordinate space
2020-02-26 22:49:51 +09:00
Shin Yamamoto
f5d72aa0a5
Add failure requirements for multiple panels ( #322 )
...
* add multi panel sample
2020-02-26 22:47:52 +09:00
Shin Yamamoto
65f67c98f4
Add floatingPanel(_:contentOffsetForPinning:) delegate method ( #314 )
...
* add floatingPanel(_:contentOffsetForPinning:)
* add 'Show NavigationController' sample
* fix the initial content offset in a navigation bar with a large text
The content offset preservation should be applied only when
`FloatingPanelController.contentInsetAdjustmentBehavior` is `.always`.
This is because the library user loses control of the initial offset.
2020-02-24 11:16:10 +09:00
Shin Yamamoto
c64056ca7b
Make floatingPanelDidEndDragging's velocity zero when it won't animate
...
Ideally, it's better to define a delegate method like
scrollViewDidEndDragging(_:willDecelerate:) in FloatingPanelControllerDelegate
to notify whether a panel will be decelerated or not.
However it's a broken change so I add this change as workaround.
The delegate method definition will be improved on v2.0.
2020-01-28 11:40:31 +09:00
Shin Yamamoto
269c3e29b5
Call floatingPanelDidEndDecelerating even if an animation interrupted
2020-01-27 16:50:16 +09:00
Shin Yamamoto
14011a5bc2
Fix grabber area behavior
...
The grabber area was not working expectedly.
2020-01-18 17:27:58 +09:00
Shin Yamamoto
23f2242c9a
Fix a panel's move-up in dragging it down
...
This issue is that a panel moved up while dragging it
down if content offset of the tracking scroll view in
a content view controller was greater than its top interaction buffer.
Ref. #293
2020-01-18 17:26:38 +09:00
Shin Yamamoto
f22f58212b
Clean up lines with only white spaces
2019-11-19 18:37:52 +09:00
Shin Yamamoto
54ff1c360d
Rename 'FloatingPanel' type for '.swiftinterface' issue
...
See also https://forums.swift.org/t/frameworkname-is-not-a-member-type-of-frameworkname-errors-inside-swiftinterface/28962
2019-11-19 18:37:44 +09:00