Commit Graph
62 Commits
Author SHA1 Message Date
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
Shin Yamamoto 2c72d07cab Merge pull request #97 from SCENEE/support-full-screen
Support full screen layout
2019-01-19 16:41:32 +09:00
Shin Yamamoto 31c057f9f8 Fix typo 2019-01-19 14:53:36 +09:00
Cedric Gatay 08d275690a fix(delegateIgnored): fix for animation use case
Do not force update layout to allow the user to animate the change later on.
2019-01-14 11:05:50 +01:00
Cedric Gatay 1c307f751e fix(delegateIgnored): listen on delegate change
Properly listens for delegate changes and trigger behavior / layout changes accordingly.

Made constructor parameter name explicit.
2019-01-14 08:49:23 +01:00
Cedric Gatay 6f06a0f7fc fix(delegateIgnored): Allow to set delegate on init
Typical use case is :

```
let floatingVC = FloatingPanelController()
floatingVC.delegate = self
```

This PR allows to set the delegate straight away by using `let floatingVC = FloatingPanelController(self)`
Its true reason is that the setup code that fetches behavior / layout through delegate is called without the delegate being set is useless on `init`ing.
Another implementation could be observing the `didSet` event on delegate to do the `setUp` for `FloatingPanel`
2019-01-12 15:15:48 +01:00
Shin Yamamoto 4ad7f11e93 Support Swift 4.1 2019-01-05 21:44:05 +09:00
Shin Yamamoto aa23e404e1 Fix a content offset of a tracking scroll view
This bug only happens on 'Shoe Tab Bar' in Samples app on landscape
orientation.
2018-12-28 16:08:10 +09:00
Shin Yamamoto 7ded61c2bc No longer need traitCollectionDidChange(_:) 2018-12-28 15:13:59 +09:00
Shin Yamamoto 08aabcf6dd Fix bugs on iOS 10 2018-12-28 15:13:59 +09:00
Shin Yamamoto e19af7e67d Set up the height constraints with the root view's heightAnchor
* `vc.view.bounds.height` causes some layout problems. This change
  makes a content view layout more robust.
* Enable to configure the content-hugging and compression-resistance
2018-12-28 15:13:59 +09:00
Shin Yamamoto 62aa07e28e Refactor layout logic
- Update README
- Remove FloatingPanelSurfaceWrapperView
- Remove content wrapper view of FloatingPanelSurfaceView
- Remove {setUp,tearDown}Views in FloatingPanel
- Modify timing to call FloatingPanelLayoutAdapter.checkLayoutConsistance()
- Fix invalid surface height on orientation change
- Fix a layout problem on SafeArea.Top
    - Fix invalid top inset of safe area on a navigation bar with search bar
- Fix content offsets of a tracking scroll view
    - Fix the content offsets on orientation change(Regression)
- Fix FloatingPanelPresentationController
- Fix intrinsic height handling
- Reduce re-rendering the surface view unexpectedly
2018-12-28 15:13:59 +09:00
Shin Yamamoto d5f5e99010 Fix dismiss swizzling 2018-12-28 15:13:59 +09:00
Shin Yamamoto 18c46d191e Fix panel is duplicated on orientation change 2018-12-28 15:13:59 +09:00
Shin Yamamoto bc4a2def42 Add FloatingPanelControllerDelegate.floatingPanel(_:shouldRecognizeSimultaneouslyWith:) 2018-12-20 11:20:22 +09:00
Shin Yamamoto 81441a724b Fix a crash in checkLayoutConsistance()
The crash happened on orientation change from landscape to portrait in
"Show Tab Bar" scene.
2018-12-12 11:47:02 +09:00
Shin Yamamoto 8751a9fe53 Fix the broken landscape layout 2018-12-12 09:59:19 +09:00
Shin Yamamoto fcd4ad874a Use autoresizing masks instead of Auto Layout constraints 2018-12-06 09:11:25 +09:00
Shin Yamamoto 2dced7bfbf Improve FloatingPanelController implementation 2018-12-06 09:11:25 +09:00
Shin Yamamoto 6817990555 Add .hidden position 2018-12-04 22:25:22 +09:00
Shin Yamamoto 20272eccb8 Add FloatingPanelTransitioning to present as Modality 2018-12-04 22:25:22 +09:00
Shin Yamamoto 6e87690649 FloatingPanelController as a Modality
* Change a floating panel view hierarchy
* Add FloatingPanelController.{show,hide}(animated:completion)
2018-12-04 22:24:26 +09:00
Shin Yamamoto a1e4643a25 Swizzling UIViewController.dismiss(animated:completion) for a content VC 2018-12-04 22:21:50 +09:00
Shin Yamamoto d469caad69 Fix unexpected assertion failure 2018-12-04 08:19:41 +09:00
Derek Schade a8691ee3a5 Update layout when layout is intrinsiclayout 2018-12-04 08:14:46 +09:00
Shin Yamamoto 66f5b0b210 Fix an invalid content offset on height change 2018-12-01 11:08:33 +09:00
Evgeniy Branitsky 4f5abfefec Removing backdrop view 2018-11-24 11:21:56 +03:00
Shin Yamamoto c0647017b5 Add FloatingPanelControllerDelegate.floatingPanelDidChangePosition(_:) 2018-11-21 09:10:50 +09:00
Ortwin Gentz a4a08662be Fixed infinite recursion in FloatingPanel.responds(to:)
if track(scrollView:) is called twice
2018-11-15 22:11:40 +01:00
Shin Yamamoto 1399cc6fbd Fix a layout bug on orientation changed 2018-11-15 10:33:46 +09:00
Shin Yamamoto d24e1c5355 Prevent unexpected assertion failure
The assertion always fails on orientation change from landspace to
portrait with the default layouts.
2018-11-14 11:18:54 +09:00
Shin Yamamoto 7b4ed52eb1 Add comments and fix typos 2018-11-12 13:35:36 +09:00
Shin Yamamoto e1c9fe120b Add FloatingPanelController.updateLayout() 2018-11-12 13:03:54 +09:00
Shin Yamamoto 16e8808ce5 Modify the backdrop default behavior 2018-11-07 11:18:05 +09:00
Shin Yamamoto d1b5a1f517 Merge pull request #29 from SCENEE/fix-navigation-bar-problem
Fix navigation bar problem
2018-11-06 10:10:45 +09:00
Shin Yamamoto 629807584b Fix the removal interaction 2018-11-05 08:50:39 +09:00
Shin Yamamoto de9f415ded Observe parent's view.safeAreaInsets 2018-11-02 17:00:34 +09:00
Shin Yamamoto fd5ca2c2fc Clean up FloatingPanelSurfaceView and FloatingPanelLayout 2018-11-02 16:19:53 +09:00
Shin Yamamoto 0cf0f42ca4 Replace FloatingPanelController.show(_:sender:) with the set(contentViewController:)
And add a sample code to test show(_:sender:) in ContentVC.

`FloatingPanelController.show(_:sender:)` can block 'Show' segue in a
content view controller. 'Show' segue should not be handled by
'FloatingPanelController`. So I replace this method.
2018-11-02 10:33:12 +09:00
Shin Yamamoto b4a26344d9 Add a removable interaction 2018-11-02 09:17:58 +09:00
Shin Yamamoto f4d6380094 Add and Update preconditions of the parent VC 2018-11-01 11:19:32 +09:00
Shin Yamamoto c4bf4c3067 Open the pan gesture recognizer of FloatingPanelController 2018-10-28 06:41:37 +09:00
Shin Yamamoto 71be1f2ed5 Change the type of 'supportedPositions' from Array to Set 2018-10-28 06:41:37 +09:00
Ortwin Gentz 4dcc5bc564 Fixed some typos and language in comments 2018-10-26 15:30:11 +02:00