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