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
49e8545aec
Rename trackedScrollView to trackingSrollView
2020-07-11 09:48:25 +09:00
Shin Yamamoto
984d4c41d8
Replace 'precondition' to 'assert'
2020-07-11 09:48:25 +09:00
Shin Yamamoto
8d372452b4
Remove 'unavailable' annotations
2020-07-11 09:48:25 +09:00
Shin Yamamoto
2fc16bb1f4
Upgrade swift version to 5.0
2020-07-11 09:48:25 +09:00
Shin Yamamoto
7bbc3d5910
fix the behavior in a sheet modal
2020-05-23 08:12:01 +09:00
Shin Yamamoto
43c76faa20
fix invalid safearea insets in a table view with static cells ( #353 )
...
See also https://github.com/SCENEE/FloatingPanel/issues/330
2020-05-16 09:17:34 +09:00
Shin Yamamoto
5787a350ab
fix the memory leak of FloatingPanelController object ( #350 )
2020-05-15 07:41:18 +09:00
Shin Yamamoto
9abb80de64
Fix an invalid indicator insets of the tracking scroll view ( #346 )
2020-04-29 14:22:34 +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
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
801fed9843
Return the child view controller to consult
2020-01-29 08:54:53 +09:00
Ramesh R C
9c57089b0e
Add FloatingPanelController.nearbyPosition ( #303 )
...
* Added nearbyPosition : always a position of a user's finger.
* debugging nearby position in Maps.app.
* Added test cases move with nearby position.
2020-01-09 13:26:30 +09:00
Shin Yamamoto
ba11e7c7d7
Pass parent to didMove(toParent:)
...
4ad7f11 commit causes the wrong parameter.
2019-11-20 09:51:47 +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
Shin Yamamoto
e75d83e7a4
Merge pull request #270 from SCENEE/release-1.6.6
...
Release 1.6.6
2019-09-28 13:17:37 +09:00
Shin Yamamoto
e3a4631e44
Remove unused delegate conformances
2019-09-27 23:47:36 +09:00
Shin Yamamoto
22ef3e7cd9
Merge pull request #253 from SCENEE/release-1.6.5
...
Release 1.6.5
2019-08-31 13:48:32 +09:00
David Hart
2689d68bab
Improve floatingPanelDidChangePosition and tigger it on removal
2019-08-31 12:49:57 +09:00
Shin Yamamoto
218a12962f
Don't unregister safeAreaInsetsObservation in hide()
...
Because the observation can't be active when a user makes a panel visible
by move(to:) instead of show().
2019-08-24 15:37:15 +09:00
David Hart
8b45517915
Improve floatingPanelDidChangePosition and tigger it on removal
2019-08-22 14:09:02 +02:00
Shin Yamamoto
53719bd94a
Feat elastic layout ( #145 )
...
* Move the prepareLayout(in:) call
* Support 'fitToBounds' content mode
* Add NSLayoutConstraint.{de}activate(constraint:)
* Update README
2019-08-03 14:45:35 +09:00
Shin Yamamoto
e94d47b1a5
Fix SafeArea insets update
...
According to 5c0ed4c commit, `floatingPanel.isDecelerating` is needed
only on iOS 10. The flag causes a problem of the safe area update with
the parent view controller containing a large title navigation bar.
And then the large title navigation bar has been introduced since iOS 11.
So the guard condition should be working only for iOS 10.
2019-07-25 14:15:02 +09:00
Shin Yamamoto
e542728ff6
Fix build break on Swift 4.1
2019-07-09 20:00:54 +09:00
Shin Yamamoto
11ba247ac4
Fix .hidden position's support
...
* Refactor FloatingPanel.targetPosition()
* Add test_targetPosition tests
* Fix bottomY
* Call shouldProjectMomentum(_:for:) only when a projection occurs on next
or pre segment. It means the delegate method not called for redirection.
* Improve all projection
2019-07-06 16:15:32 +09:00
Shin Yamamoto
2f7aed3e34
Add FloatingPanelPosition.{next,pre}(in:)
2019-07-06 16:15:32 +09:00
Shin Yamamoto
f6da876fdf
Add botomMostState prop
2019-07-03 11:34:21 +09:00
Shin Yamamoto
96c5dc7b74
Add FloatingPanelLayoutTests
2019-07-03 11:34:02 +09:00
Shin Yamamoto
c10186e50a
Prevent an unexpected layout update on iOS13
...
On iOS13, UITraitCollection.userInterfaceStyle can be changed
from .light to .dark when an app transitions to the background.
2019-06-29 07:41:52 +09:00
Shin Yamamoto
7a1cbf99d4
Rename setUpLayout to activateLayout
2019-06-28 20:23:10 +09:00
Shin Yamamoto
e1185fda93
Merge pull request #188 from SCENEE/allow-subclassing
...
Allow FloatingPanelController subclassing
2019-04-11 22:31:37 +09:00
Shin Yamamoto
6851e3b072
Support both of Swift 5 and 4.2
...
The default Swift version leaves 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.
With regard to CocoaPods, the pod spec is going to support
`swift_versions` introduced in CocoaPods v1.7.0. For now, a user needs
to override `SWIFT_VERSION` appropriately in Podfile.
2019-04-04 12:08:27 +09:00
Shin Yamamoto
cc2d1eb002
Merge pull request #178 from SCENEE/notify-retain-cycle
...
Notify a retain cycle
2019-04-03 23:13:20 +09:00
Shin Yamamoto
04cd357f68
Print retain cycle warnings
2019-04-03 08:21:35 +09:00
Shin Yamamoto
68f48f714d
Fix an infinite loop crash in iOS 10
2019-04-02 21:47:56 +09:00
Shin Yamamoto
0616aec3d2
Prevent an unexpected layout update
...
The KVO for `safeAreaInset` can be invoked even when new and old values
are the same value so that the surface of a floating panel sometimes
jumps in dragging by an unexpected layout update called from a
`safeAreaInset` update.
2019-03-30 15:45:41 +09:00
Shin Yamamoto
5df36a6601
Allow FloatingPanelController subclassing
2019-03-29 21:20:02 +09:00
Shin Yamamoto
cb54a2a7e1
Merge pull request #151 from SCENEE/remove-swapping-scroll-delegate
...
Remove swapping delegate
2019-03-26 09:55:47 +09:00
Shin Yamamoto
68e3fd2093
ChangeFloatingPanelLayoutAdapter.safeAreaInsets as a read-only property
...
This solves the problem that a panel's layout and dragging can be
inappropriate. The root cause is that a value of the `safeAreaInsets`
is sometimes different from an actual value referenced from Auto Layout.
It's led by the design that the `safeAreaInsets` is defined as a stored
property. Therefore this commit resolves the issue.
2019-03-23 18:36:26 +09:00
Gunnar Herzog
7160e4a42e
Removes unnecessary guard statement.
2019-03-07 08:56:29 +01:00
Gunnar Herzog
eba857a285
Adds support for respecting initial safeAreaInsets.
2019-03-07 08:45:05 +01:00
Shin Yamamoto
a1dd02c780
Stop scroll deceleration without swapping delegate
2019-03-05 08:31:27 +09:00
Shin Yamamoto
1b3f16bcd5
Fix disabling bottom constraints
2019-02-23 10:28:34 +09:00
Shin Yamamoto
f231105752
Enable to cancel tracking a scroll view
2019-02-21 19:19:48 +09:00
Shin Yamamoto
10d1a920f0
Add floatingPanelShouldBeginDragging(_:) delegate method
...
* Update doc comments
2019-02-21 19:19:48 +09:00
Shin Yamamoto
5c0ed4cf7d
Fix the wrong layout update on iOS10
...
On iOS 10, there is a case when a floating panel is updated by a
different position(the previous position) from the target position in
animating. This is because `FloatingPanelController` calls
`update(safeAreaInsets:)` in `viewDidLayoutSubviews()` unexpectedly.
2019-02-15 10:29:01 +09:00
Shin Yamamoto
4f56b57b0e
Replace FloatingPanel.panGesture with panGestureRecognizer
2019-02-05 22:10:03 +09:00
Shin Yamamoto
1b2dae2135
Fix presentation modally when fpc is reused
2019-01-30 13:09:04 +09:00
Damiaan Twelker
49e868a505
restore original scroll view delegate when updating content viewcontroller
2019-01-26 12:41:17 +01:00