0

如果 a与 aList中的其他视图一起放置,VStack其中定义了 a 中的一个页面TabViewwith PageTabViewStyle,与其他视图交互(点击、长按)会导致所有(可见)行List被突出显示。

以下视图演示了这种行为:点击或长按按钮或紫色区域(Color视图)将导致列表中的行突出显示(Xcode 12.1& iOS 14.1)。

struct ContentView: View {
    var body: some View {
        TabView {
            VStack {
                List {
                    Text("Row 0")
                    Text("Row 1")
                    Text("Row 2")
                }
                .listStyle(InsetGroupedListStyle())
                Spacer()
                Button(action: { print("tapped")}, label: { Text("Button") } )
                    .padding(.vertical, 80)
                Spacer()
                Color.purple
            }
            
            Text("Second Page")
        }
        .tabViewStyle(PageTabViewStyle())
    }
}

我认为这是一个错误并且已经提交了反馈,但想知道是否有解决方法,而它没有修复。

4

1 回答 1

0

想知道在未修复的情况下是否有解决方法。

经过一些调查和测试后,我看到的唯一解决方法是使用滚动视图

    TabView {
        VStack {
            ScrollView {        // << here
                Text("Row 0")
                Text("Row 1")
                Text("Row 2")
            }

注意:当然它可能需要在滚动视图中进行一些手动格式化和布局,但没有这样的错误。

于 2020-10-27T17:40:34.747 回答