как отобразить панель поиска с SwiftUI - PullRequest
1 голос
/ 07 июня 2019

Новая платформа SwiftUI, по-видимому, не обеспечивает встроенный компонент панели поиска. Должен ли я использовать UISearchController и каким-то образом обернуть его, или я должен использовать простое текстовое поле и обновить данные в соответствии с вводом текстового поля?

РЕДАКТИРОВАТЬ: текущий обходной путь должен использовать текстовое поле в качестве панели поиска. Он работает очень хорошо, но у него нет значка поиска

    import SwiftUI

    struct Search : View {

      let array = ["John","Lena","Steve","Chris","Catalina"]

      @State private var searchText = ""

      var body: some View {


        NavigationView{
          List(){
            TextField($searchText)
              .textFieldStyle(.roundedBorder)

            ForEach(array.filter{$0.hasPrefix(searchText) || searchText == "" }.identified(by: \.self)){
              Text($0)
            }
            }
            .navigationBarTitle(Text("Search"))
        }


      }
    }

    #if DEBUG
    struct Search_Previews : PreviewProvider {
      static var previews: some View {
        Search()
      }
    }
    #endif

1 Ответ

1 голос
/ 07 июня 2019

Многие компоненты UIKit в настоящее время не имеют эквивалентов SwiftUI. Чтобы использовать их, вы можете создать оболочку как в https://developer.apple.com/tutorials/swiftui/creating-and-combining-views.

По сути, вы создаете класс SwiftUI, который соответствует UIViewRepresentable и реализует makeUIView и updateUIView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...