Dynamic resizing
Description
I support dynamic font resizing. And I want the panel to be able to dynamically resize, too.
Expected behavior
When changing the settings (increasing or decreasing the font), the panel changes its size.
Actual behavior
The panel does not change its size.
Steps to reproduce
Show the panel on the screen
Minimize the application. Open the settings (Large Text) and change the size.
Deploy the application. The size of the content should change, but the panel does not.
Code example that reproduces the issue
I tried calling the invalidateLayout and invalidateIntrinsicContentSize methods, but it didn't help
class MyFPC: FloatingPanelController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
invalidateLayout()
surfaceView.invalidateIntrinsicContentSize()
}
}
How do you display panel(s)?
- Present modally
How many panels do you displays?
- 1
Environment
Library version
- 2.8.5
Installation method
- Swift Package Manager
iOS version(s)
- 17.0 - 18.0.1
Xcode version
- 16.0
Thank you for your report. I'll take a look later.
I recommend to use FloatingPanelAdaptiveLayoutAnchor or FloatingPanelIntrinsicLayoutAnchor. I confirmed they are working perfectly for dynamic resizing.
If you are looking to change the size of panel after change in your content size, in your FloatingPanelLayout use a variable to provide panel height like this: .half: FloatingPanelLayoutAnchor( absoluteInset: kSPviewHeight, edge: .bottom, referenceGuide: .safeArea ),
once the content height is adjusted, set the panel layout once again and move it to the desired state: fpc?.layout = SPSelectionLayout() fpc?.move(to: .half, animated: false)