透明款header?

Transparent section header?

我正在创建具有透明行和部分 header 的透明 List

但是,一旦行在部分 header 下滑动,它 就会自动具有背景模糊效果 。我理解这种情绪,但我想退出。

有没有人设法以某种方式隐藏它?让 header 部分的背景完全透明?

struct HeaderView: View {
        
    var body: some View {
        ZStack {
            Image("Map")
                .opacity(0.5)
            List {
                Section(
                    header: VStack {
                        Text("Section 1")
                            .font(.system(size: 40))
                            .frame(height: 60)
                    },
                    content: {
                        ForEach(1...20, id: \.self) { eachRowIndex in
                            Text("Row \(eachRowIndex)")
                                .listRowBackground(Color.clear)
                        }
                    }
                )
            }
            .listStyle(.plain)
            .padding(.top, 40)
        }
    }
}

最好是iOS 13 SwiftUI,但我很好奇UIKit中是否也有与之相关的东西。

将空视图添加到 UITableViewHeaderFooterView

struct HeaderView: View {
    init() {
        UITableViewHeaderFooterView.appearance().backgroundView = UIView() // here
    }

// Other code

对于 iOS 13,我还需要反思 UITableViewHeaderFooterView, and set backgroundView manually there (which needs an Introspect 扩展。

struct ContentView: View {
    
    init() {
        UITableViewHeaderFooterView.appearance().backgroundView = UIView()
    }
    
    var body: some View {
        List {
            Section(
                header: HStack {
                    ...
                }
                .introspectTableViewHeaderFooterView {
                    [=10=].backgroundView = UIView()
                },
                
                content: {
                    ForEach { 
                        ...
                    }
                }
            )
        }
        .listStyle(.plain)
    }
}
extension View {
    
    public func introspectTableViewHeaderFooterView(customize: @escaping (UITableViewHeaderFooterView) -> Void) -> some View {
        introspect(selector: TargetViewSelector.ancestorOrSiblingContaining, customize: customize)
    }
}