Skip to content

4.1.0

Choose a tag to compare

@camosss camosss released this 12 Aug 03:04
· 6 commits to main since this release

Fixed

  • Selection could go stale on iOS 15 and 16. Before iOS 17, onChange hands the action closure a view value captured one update earlier, so removing the selected tab left selection pointing at an item that no longer existed while the pager displayed the first tab. Selection now resolves against the value onChange delivers.
  • A fixed tab bar could run off screen. Tabs were laid out with maxWidth: .infinity, so a label wider than its share pushed the bar past the trailing edge. Every tab is now pinned to an equal width and clipped inside its own tab. Debug builds warn once when a label cannot fit, with what to do about it.
  • Pages are given the full page area, so a background applied to page content covers the whole tab rather than just the content.

Changed

  • The bottom safe area is filled by default. A full-bleed page needs no setup; add .contentRespectsSafeArea() when the pager sits above a tab bar or toolbar and its content must not run underneath.

Internal

  • Selection rules and fixed-bar sizing moved into testable helpers, with 25 new unit tests covering them — including the iOS 15/16 regression above.
  • Sample app: Different Views now shows a List and a grid, Separator exposes live color/thickness/padding controls, and Fixed vs Scrollable keeps a separate selection per style.