Ich habe eine Instanz einer UISearchBar zur Titelansicht einer UINavigationBar hinzugefügt. Wenn es Text bereits eingestellt und die Suchleiste startet die Bearbeitung es seinen Inhalt ändert die Größe Raum zu ermöglichen, für die Schaltfläche Abbrechen, obwohl die resultierende Animation den Text erstreckt sich, wie weiter untenUISearchBar dehnt Text aus, wenn es mit der Bearbeitung beginnt
im gif zeigteGibt es alles, was getan werden kann, um diese
defect
Wirkung zu vermeiden? Ich habe versucht, den Text zu entfernen und dann ein paar Momente später wieder hinzuzufügen, obwohl es funktioniert, ist es keine elegante Lösung.
aktualisieren
Basierend auf @ Paruru Antwort habe ich versucht, die Animation der Cancel
Taste zu antizipieren und es sieht nicht schlecht aus. Was ich getan habe ist, dass ich die Präsentation der Cancel
Taste aufzwingen searchBarShouldBeginEditing:
extension SearchViewController: UISearchBarDelegate {
func searchBarShouldBeginEditing(searchBar: UISearchBar) -> Bool {
if searchBar.text?.isEmpty == false {
// This avoids the text being stretched by the UISearchBar.
searchBar.setShowsCancelButton(true, animated: true)
}
return true
}
}
Das Endergebnis ist das, was ich erreichen will, die Animation ohne den Text gestreckt wird. Ich halte dies für einen Workaround und warte daher auf andere Antworten, da dieser Code möglicherweise nicht zukunftssicher ist.
Ihre aktualisierte Lösung funktioniert gut, Sie sollten es als Antwort posten, damit ich es verbessern kann! –
HI Alex, ich möchte nicht die richtige Antwort geben, da es ein Hack ist und für neuere Versionen des iOS schädlich sein könnte, die das Animationsproblem beheben könnten. – vfn