SwiftUI:如果在TabView内与其他视图进行交互,则列表行会突出显示

时间:2020-10-27 17:05:12

标签: swiftui swiftui-list swiftui-tabview

如果将List与其他视图一起放置在VStack中,并用TabView定义了PageTabViewStyle中的一页,则与{其他视图会导致List的所有(可见)行都突出显示。

以下视图演示了此行为:点击或长按按钮或紫色区域(Color视图)将使列表中的行突出显示(Xcode 12.1iOS 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())
    }
}

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

1 个答案:

答案 0 :(得分:0)

想知道是否有一种解决方法,但它不是固定的。

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

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

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