【问题标题】:SwiftUI .searchable in iOS 15 - .navigationBarDrawer(displayMode: .always)iOS 15 中的 SwiftUI .searchable - .navigationBarDrawer(displayMode: .always)
【发布时间】:2021-06-27 16:30:37
【问题描述】:

我想使用新的 .searchable 修饰符和 .navigationBarDrawer(displayMode: .always) 来实现搜索栏。但是如果我启动应用程序,搜索栏的默认位置已经“滚动”了。

但这是我在App启动时想要实现的:

这是我的代码:

struct SearchView: View {
    @State var searchText = ""
    var body: some View {
        NavigationView {
            List {
                Text("Search Bar")
            }
            .navigationBarTitle("Search")
            .searchable(text: $searchText, placement: .navigationBarDrawer(displayMode: .always))
        }
    }
}

【问题讨论】:

    标签: ios swift swiftui


    【解决方案1】:

    Hacky 解决方案,但它有效:

    struct ContentView: View {
    @State var searchText = ""
    var body: some View {
        NavigationView {
            ZStack {
                Rectangle()
                    .fill(Color.white)
                    .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 1)
                
                List {
                    Text("Search Bar")
                }
            }
            .searchable(text: $searchText, placement:.navigationBarDrawer(displayMode: .always))
            
            .navigationBarTitle("Search", displayMode: .large)
        }
    }
    

    }

    【讨论】:

    • 感谢您的回答!不幸的是,导航栏标题在滚动时不再变为内联。
    • @XÆA-12 您现在可以查看我已经更新了答案。最初,我以为你一直想要一个大标题。
    • 很好,完美运行。虽然它有点 hacky :) 你知道这是苹果故意还是只是一个错误?
    • 它只有在你添加 searchable(text: 到它时才会发生。所以它故意在那里是有原因的,但不知道它是什么。:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2021-10-27
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多