【发布时间】:2021-05-04 14:59:51
【问题描述】:
在 macOS 上使用拖放对 SwiftUI List 重新排序时,不使用 SidebarListStyle,在已移动的行下方会出现大量空白。
这不会在 iOS 或列表样式设置为 SidebarListStyle 时发生。
这是显示问题的示例代码。
import SwiftUI
struct Item: Hashable, Identifiable {
var id = UUID()
var title: String
}
struct ContentView: View {
@State var items = [
Item(title:"Number 1"),
Item(title:"Number 2"),
Item(title:"Number 3"),
Item(title:"Number 4"),
Item(title:"Number 5"),
Item(title:"Number 6"),
Item(title:"Number 7"),
Item(title:"Number 8"),
Item(title:"Number 9"),
Item(title:"Number 10")
]
var body: some View {
List {
ForEach(items, id: \.id) { item in
Text(item.title)
.frame(maxWidth: .infinity, alignment: .center)
}
.onMove { (indexSet, index) in
self.items.move(fromOffsets: indexSet, toOffset: index)
}
}
.listStyle(PlainListStyle())
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
有什么办法可以防止这个多余的空间出现?
【问题讨论】:
-
我向 Apple 开具了开发人员技术支持 (DTS) 票证,并在他们的反馈系统中创建了一个错误。我收到以下回复:“没有解决方法;仍在调查中。”那是在 2 月 2 日,从那以后再也没有听到任何进一步的消息。
-
从 macOS Big Sur 11.3 Beta (20E5231a) 开始,此功能仍然存在问题