我遇到了 .searchable 的问题,我找不到修改器或覆盖来防止搜索栏在活动时显示动画并隐藏导航标题和工具栏元素。
.searchable当使用 SwiftUI 激活时,这是否可以防止文本栏动画化?
父视图
struct ParentSearchableView: View {
@EnvironmentObject var sessionStore: SessionStore
@Environment(\.dismiss) var dismiss
@StateObject var groupViewModel: GroupViewModel
@State var searchString: String = ""
@State var privacy = 0
@State var alertString = ""
@State var selected: Bool = false
@State var showSelectedSheet: Bool = false
var isCreate: Bool
var body: some View {
VStack {
GroupInviteSearchContainerView(groupViewModel: groupViewModel, searchString: searchString)
.searchable(text: $searchString,
placement: .navigationBarDrawer(displayMode: .always) )
.onSubmit(of: .search) {
// Do Someting
}
.navigationTitle("Invite Friends")
.navigationBarTitleDisplayMode(.large)
.navigationBarHidden(false)
.background(Color.primaryDark)
.toolbar() {
Button("\(groupViewModel.listSelection.count) Selected") {
showSelectedSheet = true
}
}
}
Run Code Online (Sandbox Code Playgroud)
搜索容器视图
struct SearchContainerView: View {
@EnvironmentObject var sessionStore: SessionStore
@Environment(\.isSearching) var isSearching
@Environment(\.dismissSearch) var dismissSearch
@StateObject var groupViewModel: GroupViewModel
@State var searchString: String
var body: some View {
VStack {
if(groupViewModel.displayList.count > 0) {
List{
ForEach(groupViewModel.displayList) { user in
FriendSelectCellView()
}
}
.scrollContentBackground(.hidden)
.background(Color.primaryDark)
.foregroundColor(.black)
} else {
Spacer()
}
}
.navigationBarHidden(false)
.background(Color.darkBackground)
.onChange(of: isSearching) { newValue in
groupViewModel.isSearching = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |