La barre UISearchBar se comporte différemment sous iOS 11, puis sous iOS 10 et inférieur.
J'ai manipulé pour "fixer" la taille en quelque sorte avec ce code:
if #available(iOS 11.0, *) {
searchBar.heightAnchor.constraint(equalToConstant: 44).isActive = true
}
Mais je ne peux pas réparer l'animation. Des idées, en dehors de la simple animation manuelle de la barre de recherche?
UIView.animate(withDuration: 0.3, animations: { [weak self] in
guard let strongSelf = self else { return }
strongSelf.searchBar.alpha = 0.0
})
Voir une vidéo de l’effet d’animation cassé ici .
Rechercher une réponse dans UIPercentDrivenInteractiveTransition . Il utilise pour mettre à jour UIViews lors de la transition de UINavigationController en valeur de persentage.
En d'autres termes, cela dépend du nombre de contrôleurs de vue UINavigationController déjà ouverts ou déplacés vers l'arrière dont l'affichage est différent.
Cette valeur vous aidera à mettre à jour votre barre de recherche (alpha, largeur, etc.)
Enveloppez-le simplement avec UIView et l'animation revient.