Question: this gives me dynamic text height correctly

```
import SwiftUI
struct ContentView : View {
    var body: some View {
        List {
            Text("This is some very long text can we can see scrolls past two lines ").lineLimit(nil)   
        }
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif

```

[![enter image description here](https://i.stack.imgur.com/ujnBV.png)](https://i.stack.imgur.com/ujnBV.png)

But the following truncates the Text. How do i get dynamic height with the following?

```
import SwiftUI
struct ContentView : View {
    var body: some View {
        GeometryReader { reader in
            ScrollView {
                Text("This is some very long text can we can see scrolls past two lines ")
                    .lineLimit(nil)
                    .frame(width: reader.size.width)
            }
        }
    }
}
#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif

```

[![enter image description here](https://i.stack.imgur.com/4ZsIq.png)](https://i.stack.imgur.com/4ZsIq.png)

Answer: 
Might be a `ScrollView` bug. I'm honestly not sure why your code doesn't work, but you can get the desired result using:

```
struct ContentView : View {
    var body: some View {
        GeometryReader { reader in
            ScrollView(alwaysBounceVertical: true) {
                ZStack(alignment: .top) {
                    Color.clear.edgesIgnoringSafeArea(.all)
                    Text("This is some very long text can we can see scrolls past two lines ")
                        .lineLimit(nil)
                }.frame(width: reader.size.width, height: reader.size.height)
            }
        }
    }
}

```

I added `alwaysBounceVertical` to the scroll view so you can see that the view scrolls. It's not necessary though.
In my opinion this is a bug, as I cannot find the rationale of its behavior.

Let me explain:

If you do not have a ScrollView, we know that forcing the width of a Text view to a specific width and using the lineLimit(nil), will make the text view expand vertically to accommodate the text. If instead, you have lineLimit(1), the ellipsis will show to truncate the contents of the view.

Now, if we have the Text() inside a ScrollView, and we force the width to a specific size and set lineLimit(nil), there are two acceptable outcomes:

1. The text view respects the new width and expands vertically.
2. The text view does not respect the width but let you scroll horizontally. Not at all a good choice, but it could be a decision made by who developed the framework.

However, what actually happens, is that the text view respects the new width size (as made evident by the ellipsis), but it won't expand vertically in spite of the lineLimit(nil). There is no reason for that, since that behavior can already be achieved by using lineLimit(1). This is why I think this is definitely a bug.

You should file a bug report with Apple.