可以编写多个内联三元语句,但是有没有更干净的方法?
btqmn9zl1#
具有以下功能:
extension View { @ViewBuilder fileprivate func hideListRowSeparatorIfFirstOrLastItem<Data: RandomAccessCollection<ID>, ID: Identifiable>(data: Data, item: ID) -> some View { if data.first?.id == item.id { listRowSeparator(.hidden, edges: .top) } else if data.last?.id == item.id { listRowSeparator(.hidden, edges: .bottom) } else { self } } }
您可以巧妙地将此属性添加到行中:
struct MyView: View { let model = Model() var body: some View { List { Section("Section") { ForEach(model.items) { item in Text("Hello \(item.value)") .hideListRowSeparatorIfFirstOrLastItem(data: model.items, item: item) } } } .listStyle(.plain) } }
1条答案
按热度按时间btqmn9zl1#
具有以下功能:
您可以巧妙地将此属性添加到行中: