微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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())
    }
}

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

解决方法

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。