【发布时间】:2021-02-20 03:31:51
【问题描述】:
我使用 SwiftUI 开发了一个聊天屏幕。当前最低 iOS 版本为 13.0。
为了进行聊天,我将元素 List 与 ForEach 结合使用。 问题是列表显示了分隔符,我需要隐藏它们:
我试图隐藏 TableView 的样式,但没有任何效果。 代码如下:
struct MessagesView: View {
var messages: [MessageModel] = []
init() {
// To remove only extra separators below the list:
UITableView.appearance().tableFooterView = UIView()
// To remove all separators including the actual ones:
UITableView.appearance().separatorStyle = .none
}
var body: some View {
List {
ForEach(messages, id: \.messageId) { message in
Group {
if(messPack.user != nil) {
ReceivedMessageView(
message: message.message,
name: message.user?.name,
color: message.user?.color)
} else {
SentMessageView(message: messPack.message)
}
}.listRowInsets(EdgeInsets())
}
}
}
}
如果有任何帮助,我将不胜感激:)
【问题讨论】:
-
最低 iOS 版本是 13.0 - 但你在哪个版本上运行它?
-
有什么理由需要它在列表中吗?如果没有分隔线,ScrollView 不会完成同样的事情吗? List 应该有分隔线,其中 ScrollView 是普通的。
-
这是否回答了您的问题stackoverflow.com/a/62598818/12299030?
-
感谢您的所有回答。我是 SwiftUi 的新手。我认为当列表很长(延迟加载等)时,List 可以很好地管理内存。 ScrollView 做同样的事情吗?