@ristkof @twostraws Sad to say this is the contract…
`.fixedSize` forces a view to use its 'ideal size', per the docs. Its name just defies user expectations.
`.frame` is also badly named, as it technically allows overriding the size proposal a view offers to its container, the documented layout system.
Views take all the available space the container offers, up to their max width, but ideal size kicks in when space is unbounded, like scrollviews or when using fixedSize…
Think:
- `fixedSize` ignores container limits.
- `idealWidth`/`idealHeight` means that dimension when no container limits apply. (Meaning it's a fallback value, while maxWidth is treated like an ideal for a bounded canvas)
- `frame` means override the size proposal to the container.
@twostraws _Actually_ this makes total sense if you know that SwiftUI containers offer a size proposal to their subviews which they refine and communicate back up to the containers which then loops back around for a final pass before deciding the actual sizes. Have you never even _tried_ reading the docs for each individual method requirement of the Layout protocol? 🧐
Seriously though, sometimes I miss constraints.