Text inside a VStack truncates when it's not supposed to in SwiftUI Text inside a VStack truncates when it's not supposed to in SwiftUI ios ios

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!


I had to add .fixedSize(horizontal: false, vertical: true) AND .padding() before all my text would stop truncating (show in view properly) I also have a frame tag for a separate vstack (I have 2 separate vstacks in the view)


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)        }    }}