Text inside a VStack truncates when it's not supposed to in SwiftUI
I figured out how to get the text to render properly.
Applying the answer here works: Views compressed by other views in SwiftUI VStack and List
The key is to ensure that the .fixedSize()
gets added before .frame()
No Spacer()
needed!
Unfortunately It is a bug.
There is a work around you can use to force it to recalculate elements but it's just a workaround and you must wait for the release and see if it fixed.
Workaround
Add a pair of spacer with the height of zero above and below the contents of ForEach
.
struct BugRepro: View { @State var length: Double = 1.0 var body: some View { VStack { ForEach(0..<3) { i in Spacer().frame(height: 0) BugReproElement(index: i) Spacer().frame(height: 0) }.frame(width: UIScreen.main.bounds.width * CGFloat(length)) Slider(value: self.$length, in: 0.0...1.0) } }}