SwiftUI中使用Text()实现换行

5

如果文本内容过长需要换行,你该如何在Text()中实现?(类似于UIKit中的lineBreakMode)

如果输入一段很长的字符串,Text()默认会在文本右侧添加“...”

谢谢!

编辑:我尝试通过添加ScrollView来滚动显示过长的文本内容,但是如果我添加ScrollView,.lineLimit()将失效。

代码:

ˋˋˋ

struct Homework: View {

var selectedWeek: String
var week: String = "10.-20."
var content: String = "" //Long string inside here

var body: some View {
    NavigationView {
        ScrollView(isScrollEnabled: true, alwaysBounceHorizontal: false, alwaysBounceVertical: true, showsHorizontalIndicator: false, showsVerticalIndicator: true, content: {
            Text(content)
               .lineLimit(nil)
        })
            .navigationBarTitle(Text(week))
    }
}
}

ˋˋˋ


1
你在这个网站上做过任何搜索吗?你能贴出你尝试过的代码吗?在 [SwiftUI] multiple line 上进行了非常快速的搜索,至少有两个答案以及一个重复的结果。也许你可以解释一下它们为什么对你不起作用?(当然,如果是不同的问题,我提前道歉,但仍然请求你的代码,也许我们可以帮助你。) - user7014451
你可能会从这个答案中得到帮助:https://dev59.com/rFMI5IYBdhLWcg3wRZbJ#56604599 - Wil Shipley
1个回答

2

当你想在文本中显示特定行数时,可以使用lineLimit API。只需调用此API并指定所需的行数即可。如果不确定需要多少行,请在参数中输入nil。

原始答案: "最初的回答"

import SwiftUI
struct ContentView : View {
    @State var demoText = "Start Typing"
    var body: some View {
        VStack {
            TextField($demoText)
            Text(demoText)
                .lineLimit(nil)
        }
    }
}

1
没有任何额外的代码,它能够正常运行,但是如果我添加了一个滚动视图,它就无法工作... 抱歉。 - Adrian Baumgart
在这种情况下,文本应该是可滚动的。文本末尾将不会显示任何...。 - Md Shafiul Islam
Shaafi Shovon,我无法使用这段代码滚动。它在文本末尾显示“...”。 - Adrian Baumgart
如果我将我在这里发布的代码嵌入到ScrollView中,那么文本标签就会变成水平滚动的。所以我不确定你的代码出了什么问题。 - Md Shafiul Islam
是的,这就是我所说的“它忽略了.lineLimit()”。文本在一个可滚动的行中显示。我暂时用List解决了这个问题... - Adrian Baumgart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接