iphone - ¿Cómo ocultar/mostrar la barra de alcance de UISearchBar con animación?
animation uisearchbardelegate (1)
Aquí se explica cómo hacer que el botón de cancelación y la barra de alcance se muestren solo durante la edición.
Código completo con la pequeña ventaja de animar la apariencia (des) del botón de cancelar:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
searchBar.showsScopeBar = YES;
[searchBar sizeToFit];
[searchBar setShowsCancelButton:YES animated:YES];
return YES;
}
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
searchBar.showsScopeBar = NO;
[searchBar sizeToFit];
[searchBar setShowsCancelButton:NO animated:YES];
return YES;
}
EDITAR - Versión Swift 3
public func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
searchBar.showsScopeBar = true
searchBar.sizeToFit()
searchBar.setShowsCancelButton(true, animated: true)
return true
}
public func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
searchBar.showsScopeBar = false
searchBar.sizeToFit()
searchBar.setShowsCancelButton(false, animated: true)
return true
}
No quiero mostrar ninguna barra de alcance cuando la tabla está vacía (antes de que la barra de búsqueda se edite por primera vez), ninguna barra de alcance cuando se está editando y, finalmente, mostrarla cuando finalice la edición. Sé sobre el protocolo UISearchBarDelegate, pero no sé cómo mostrar / ocultar la barra de alcance con animación. Sé que UISearchBar tiene setShowsScopeBar:
pero no setShowsScopeBar:animated:
como lo hace para setShowsCancelButton:animated
.
Editar Es importante que llame a [searchBar sizeToFit]
después de mostrar / ocultar la barra de alcance. ¿Hay una buena manera de animar esto? (¿Debo hacer this ? No parece funcionar.)