swift - SwiftUI 中使用 Text() 换行

标签 swift swiftui

如果文本太长而无法在一行中显示,如何使用 Text() 进行换行? (类似于 UIKit 中的 lineBreakMode)

如果我输入长字符串,它只会在文本右侧添加“...”。

谢谢!

编辑:我尝试将其与 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))
    }
}
}

ˋˋˋ

最佳答案

每当您想要在文本中包含特定行数时,都会使用 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)
        }
    }
}

关于swift - SwiftUI 中使用 Text() 换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56798026/

相关文章:

swift - 如何从 Healthkit 查询每日总步数并显示到 SwiftUI TextView 中?

ios - 在 SwiftUI 中动态创建列表部分

SwiftUI 图像导致中止陷阱 6

swift - 全局存储 SwiftUI 函数

dictionary - 如何让 SwiftUI 检测对字典的更改?

ios - SwiftUI:NavigationLink 的目标 View 的异构集合?

ios - Sprite 节点位置未通过触摸更新?

ios - 如何摆脱内部使用异步DispatchQueue的循环

Swift 4 升级问题,imageViews 作为导航栏中的栏按钮

swift - interactivePopGestureRecognizer 损坏 Root View Controller 上的导航堆栈