You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI问题:ScrollView无法滚动至长文本末尾该如何解决?

SwiftUI ScrollView 文本截断、无法滚动的解决方案

问题原因

你的代码中给Text添加了maxHeight: .infinity的frame约束,这会强制Text撑满ScrollView的可用高度,而非根据内容自适应高度。ScrollView需要子视图有明确的内容高度才能触发滚动逻辑,因此文本过长时会被截断,且无法滚动。

解决方案

方案1:直接移除Text的无限高度约束

让Text根据内容自动计算高度,ScrollView就能正常识别内容长度并允许滚动:

ScrollView {
    Text(self.outputData ?? "na")
        .frame(maxWidth: .infinity) // 仅保留宽度撑满的需求
}
.frame(maxHeight: .infinity)
.padding()

方案2:兼顾短文本居中与长文本滚动

如果需要在内容较短时让文本垂直居中,内容较长时自动滚动,可以用VStack配合Spacer实现:

ScrollView {
    VStack {
        Spacer()
        Text(self.outputData ?? "na")
            .frame(maxWidth: .infinity)
        Spacer()
    }
}
.frame(maxHeight: .infinity)
.padding()

内容的提问来源于stack exchange,提问作者János

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:07:02