J'ai mon UISearchBar
configuré comme suit:
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false // Allow user to tap on results
searchController.searchBar.placeholder = "Search patients" // Placeholder
searchController.searchBar.barStyle = .blackOpaque
searchController.searchBar.tintColor = colors.text // Cancel button tint
navigationItem.searchController = searchController // Set the searchController
navigationItem.hidesSearchBarWhenScrolling = true // Auto-hide search when user scrolls
Voici à quoi cela ressemble sur iOS 12: vs iOS 13: Qu'est-ce qui a changé dans iOS 13? J'ai essayé de parcourir les différents barStyles
, et aussi de définir .isTranslucent
à false - aucun effet non plus. Le mode clair/sombre ne change rien non plus.
L'autre changement consiste à masquer la barre de recherche - sur iOS 12, si je faisais un peu défiler vers le haut, la barre de recherche se cacherait (peu importe si le tableau était rempli ou non). Avec iOS 13, une fois que la barre de recherche est apparue (c'est-à-dire que l'utilisateur a glissé vers le bas), elle ne peut plus être cachée. Quelqu'un connaît-il un correctif pour cela aussi?
J'ai un problème similaire avec vous. Je ne sais pas pourquoi cela se produit actuellement sur iOS 13 et fonctionne correctement dans les anciennes versions. Mais j'ai trouvé la solution en ajoutant cette fonction à votre barre de recherche.
if #available(iOS 13.0, *) {
searchBar.searchTextField.backgroundColor = UIColor.white
}
Aperçu après correction:
Que diriez-vous d'utiliser searchBarStyle
comme default
et de changer la couleur d'arrière-plan searchTextField
?
if #available(iOS 13.0, *) {
searchBar.searchBarStyle = .default
searchBar.searchTextField.backgroundColor = UIColor.black.withAlphaComponent(0.1)
}
Pour une configuration globale comme dans AppDelegate
:
if #available(iOS 13, *) {
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).backgroundColor = .anyColor
}
searchController.searchBar.searchTextField.backgroundColor = UIColor.black
fait le travail comme solution de contournement. Le sélecteur est nouveau dans iOS 13.
J'ai quand même déposé un rapport sur l'assistant de rétroaction car je pense que c'est un comportement inattendu.