Le nouveau cadre SWIFTUI ne semble pas fournir une composante barre de recherche intégrée. Devrais-je utiliser un UisearchController et l'envelopper d'une certaine manière, ou devrais-je utiliser un simple champ de texte et mettre à jour les données en fonction de l'entrée TextField?
EDIT: La solution de contournement actuelle consiste à utiliser un TextField
comme une barre de recherche. Ça fonctionne très bien, mais il n'a pas l'icône de recherche
import SwiftUI
struct Search : View {
let array = ["John","Lena","Steve","Chris","Catalina"]
@State private var searchText = ""
var body: some View {
NavigationView{
List{
TextField("Type your search",text: $searchText)
.textFieldStyle(RoundedBorderTextFieldStyle())
ForEach(array.filter{$0.hasPrefix(searchText) || searchText == ""}, id:\.self){searchText in
Text(searchText)
}
}
.navigationBarTitle(Text("Search"))
}
}
}
struct Search_Previews : PreviewProvider {
static var previews: some View {
Search()
}
}
mis à jour pour travailler avec Xcode 11.1
De nombreux composants Uikit n'ont actuellement pas d'équivalents SWIFTUI. Afin de les utiliser, vous pouvez créer un wrapper comme dans https://developer.apple.com/tatudials/swiftui/creating-and-commining-views .
Fondamentalement, vous établissez une classe SWIFTUI qui est conforme à UIViewrewrevisable et implémente Makeuview et UpdateduView.