Skip to content

Add occlusion insets for persistent overlays#614

Draft
robmaceachern wants to merge 1 commit into
mainfrom
robmaceachern/keyboard-adjustment-insets
Draft

Add occlusion insets for persistent overlays#614
robmaceachern wants to merge 1 commit into
mainfrom
robmaceachern/keyboard-adjustment-insets

Conversation

@robmaceachern
Copy link
Copy Markdown
Member

@robmaceachern robmaceachern commented May 14, 2026

Adds Behavior.occlusionInsets so Listable can account for persistent UI that visually covers the list viewport, such as a floating bottom action bar.

Key changes:

  • Adds Behavior.occlusionInsets as a semantic inset for persistent viewport occlusion.
  • Applies occlusion insets to the underlying scroll view content inset, and applies the relevant axis-specific edges to scroll indicator insets.
  • Combines occlusion insets with keyboard avoidance so first-responder scrolling treats the occluded area as unavailable.
  • Keeps occlusion geometry separate from layout.bounds.padding, which continues to control Listable content layout.
  • Relayouts synchronously when adjusted scroll insets change so visible attributes stay aligned before UIKit auto-scrolls the focused input.
  • Adds unit coverage, README/changelog documentation, and a development demo for text fields behind a floating bottom overlay.

Validation

  • git diff --check
  • xcodebuild test -workspace Development/ListableDevelopment.xcworkspace -scheme Listable -destination 'id=31537917-EB30-47B9-BAF9-DD541083B1DA' -configuration Debug -derivedDataPath /tmp/ListablePR614DerivedData -only-testing:ListableTests/ListViewTests/test_calculateScrollViewInsets -only-testing:ListableTests/BehaviorTests/test_init
  • Built, installed, and launched the demo app on Listable PR 614 iPhone 16 Pro.

Checklist

Please do the following before merging:

  • Ensure any public-facing changes are reflected in the changelog. Include them in the Main section.

This description was drafted with AI assistance.

@robmaceachern robmaceachern marked this pull request as ready for review May 20, 2026 20:33
@robmaceachern robmaceachern marked this pull request as draft May 21, 2026 14:22
@robmaceachern robmaceachern force-pushed the robmaceachern/keyboard-adjustment-insets branch 2 times, most recently from 10eed39 to d958407 Compare May 21, 2026 17:22
@robmaceachern robmaceachern changed the title Add keyboard adjustment additional insets Add occlusion insets for persistent overlays May 21, 2026
@robmaceachern robmaceachern force-pushed the robmaceachern/keyboard-adjustment-insets branch from d958407 to e56dd5c Compare May 21, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant