FloatingPanel icon indicating copy to clipboard operation
FloatingPanel copied to clipboard

Dynamic resizing

Open DolganovAnton13 opened this issue 1 year ago • 3 comments

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

Simulator Screenshot - new iPhone 15 - 2024-10-16 at 23 11 12

Minimize the application. Open the settings (Large Text) and change the size.

image

Deploy the application. The size of the content should change, but the panel does not.

image

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

DolganovAnton13 avatar Oct 16 '24 18:10 DolganovAnton13

Thank you for your report. I'll take a look later.

scenee avatar Oct 17 '24 07:10 scenee

I recommend to use FloatingPanelAdaptiveLayoutAnchor or FloatingPanelIntrinsicLayoutAnchor. I confirmed they are working perfectly for dynamic resizing.

scenee avatar Nov 02 '24 05:11 scenee

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)

SinghSukhreet avatar Nov 20 '24 10:11 SinghSukhreet