我的聊天气泡中的文本不会换行。
这是在自己的视图中提取的“聊天气泡”
struct chatPartnerBubble: View {
var textMsg: String
var body: some View {
VStack(alignment: .leading) {
HStack {
HStack {
Text(textMsg)
.foregroundColor(Color.white)
.padding(10)
.lineLimit(nil)
}
.background(Color.blue)
.cornerRadius(12)
Spacer()
}.padding(.leading)
}
}
}
这是ChatView
ScrollView {
VStack {
chatPartnerBubble(textMsg: "text")
chatPartnerBubble(textMsg: "text")
chatPartnerBubble(textMsg: "text")
chatPartnerBubble(textMsg: "text")
chatPartnerBubble(textMsg: "text")
chatPartnerBubble(textMsg: "text")
}
}
但是,如果textMsg较长,它将只是点...,而不会换行
答案 0 :(得分:0)
我似乎对我很好,我正在使用Xcode 11.2 Beta 2,所以Xcode版本可能是问题所在。我记得以前也遇到过类似的问题,解决方法是VStack(alignment: .center, spacing: 0)
也许有帮助
答案 1 :(得分:0)
您可以通过选择“在Scrollview上列出”来实现所需的功能。如果我们在聊天应用程序中考虑可扩展性因素,那么List远优于Scrollview。因为视图可以在List中轻松重用。
struct chatPartnerBubble: View {
var textMsg: String
var body: some View {
VStack{
Text(textMsg)
.foregroundColor(Color.white)
.padding(10)
.lineLimit(nil)
}
.background(Color.blue)
.cornerRadius(12)
}
}
struct ContentView: View {
var body: some View {
List {
chatPartnerBubble(textMsg: "text1 111111111 1 11111111 1 1 1 1 1 1 1 1 111111111111")
chatPartnerBubble(textMsg: "text2 22222 222222222 2222222222222 222 2 2 2 22 2 222222")
chatPartnerBubble(textMsg: "text3 333333 3 333 333 3 3 3 3 33333333 3 33333333 3333333")
}
.padding(.top)
.onAppear {
UITableView.appearance().separatorColor = .clear
}
.onDisappear {
UITableView.appearance().separatorColor = .gray
}
}
}
如果我们的应用程序中有多个表视图,则OnAppear和onDisappear块仅用于隐藏/显示以上消息表视图的分隔符。