web-dev-qa-db-fra.com

iOS 11 UISearchBar dans la barre de navigation

La barre UISearchBar se comporte différemment sous iOS 11, puis sous iOS 10 et inférieur.

  • la taille a changé
  • l'animation de fondu lors de l'insertion d'une autre vue contrôlée est manquante

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 .

9
Darko

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.)

2
ObranS

Enveloppez-le simplement avec UIView et l'animation revient.

3
awuu