如何在SwiftUI中实现多行文本视图

如何在SwiftUI中实现多行文本视图,swift,swiftui,Swift,Swiftui,我想实现用户的标题和评论,就像instagram在swiftUI中所做的一样。但不知何故,评论总是被截断 我已经尝试过使用.lineLimit(nil),但没有成功 HStack(对齐:。顶部){ 文本(post.user.username).字体(.subheadline).字体权重(.bold) 文本(帖子描述).字体(.subheadline).字体权重(.light) .lineLimit(无).multilineTextAlignment(.leading) } 我希望是这样。 为

我想实现用户的标题和评论,就像instagram在swiftUI中所做的一样。但不知何故,评论总是被截断

我已经尝试过使用
.lineLimit(nil)
,但没有成功

HStack(对齐:。顶部){
文本(post.user.username).字体(.subheadline).字体权重(.bold)
文本(帖子描述).字体(.subheadline).字体权重(.light)
.lineLimit(无).multilineTextAlignment(.leading)
}
我希望是这样。

为了在一行上有两个
文本
对象,使用多个样式选项,换行到新行,您需要创建多个对象,然后将它们合并为一个

所以拿你的两个
文本
对象

Text(post.user.username).font(.subheadline).fontWeight(.bold)
Text(post.description).font(.subheadline).fontWeight(.light)
    .lineLimit(nil).multilineTextAlignment(.leading)
我们将使用
reduce
,来组合它们

func combineTextObjects(_ objects: [Text]) -> Text{
    return objects[1...].reduce(objects[0], +)
}
将其称为
combineTextObjects
,如下所示:

HStack(alignment: .top) {
    combineTextObjects([
        Text(post.user.username).font(.subheadline).fontWeight(.bold),
        Text(post.description).font(.subheadline).fontWeight(.light)
        .lineLimit(nil).multilineTextAlignment(.leading)
    ])
}

将.fixedSize(水平:false,垂直:true)添加到文本中

如果注释数组占用的屏幕空间超过可用空间,您可能应该使用ScrollView。尝试过了,效果很好。不幸的是,当我使用相同的方法添加
注释时,它突然不再起作用。如果您添加的是破坏此功能的其他代码,则可能是其他代码,而不是此代码。我在应用程序中使用此选项尝试此操作时出现错误:无法将“某些视图”类型的值转换为预期的元素类型“文本”@neptune它们必须不是正确的文本对象,或者您有其他错误,SwiftUI报告错误