3

我正在使用 iOS 15 并searchable在 SwiftUI 中尝试使用 Lists 上的新修饰符。看起来当您附加searchable(text: $searchText)到 NavigationView 时,搜索栏默认呈现在导航栏标题下方的屏幕上。当我尝试使用它并运行模拟器时,搜索栏不会呈现在屏幕上。只有当我开始在屏幕上向下滚动列表时,搜索栏才会出现在屏幕上。

这是预期的行为吗?

这是代码。

@State private var searchText = ""
let data = (1...50).map( {_ in Int.random(in: 1...10)} )

var body: some View {
    NavigationView {
        List {
            ForEach(data, id: \.self) { d in
                Text("\(d)")
            }
        }
    }.searchable(text: $searchText)
}

滚动前

在此处输入图像描述

滚动后

在此处输入图像描述

4

1 回答 1

1

这是默认行为,要始终看到它,我们需要提供相应的位置,例如

NavigationView {
    List {
        ForEach(data, id: \.self) { d in
            Text("\(d)")
        }
    }
}
.searchable(text: $searchText, 
       placement: .navigationBarDrawer(displayMode: .always))  // << here !!
于 2021-10-22T05:01:33.620 回答