2011-11-04 13 views
6

De alguna manera no sé por qué falla la animación predeterminada.UISearchBar Sin cambiar

mi barra de búsqueda no se movió como debería.

la vista está en UIView, me pregunto si este es el problema.

Incluye el diseño del IB

enter image description here enter image description here enter image description here

+0

por favor, elabore el problema no estoy entendiendo su problema –

+0

Hola vijay, cuando hice tapping en la barra de búsqueda, debería levantarse como la primera imagen. sin embargo, mi barra de búsqueda (segunda foto) hizo subir la barra de navegación, pero no se movió hasta la parte superior – Desmond

+0

¿Qué debería empujar hacia arriba? ¿El teclado? Todavía no entiendo tu problema. – Robert

Respuesta

11

la barra de búsqueda no se mueve realmente en la animación 'push-up'. Por el contrario, permanece en su lugar mientras la barra de navegación sube, tirando del resto de la vista con ella. Debería poder mover la barra de búsqueda manualmente en código registrándose como su delegado (UISearchBarDelegate) y respondiendo a estas llamadas.

#pragma mark - UISearchBarDelegate Methods 
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 
    //move the search bar up to the correct location eg 
    [UIView animateWithDuration:.4 
       animations:^{ 
        searchBar.frame = CGRectMake(searchBar.frame.origin.x, 
                0, 
                searchBar.frame.size.width, 
                searchBar.frame.size.height); 
       } 
       completion:^(BOOL finished){ 
        //whatever else you may need to do 
       }]; 
} 

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar { 
    //move the search bar down to the correct location eg 
    [UIView animateWithDuration:.4 
       animations:^{ 
        searchBar.frame = CGRectMake(searchBar.frame.origin.x, 
                /*SearchBar original Y*/, 
                searchBar.frame.size.width, 
                searchBar.frame.size.height); 
       } 
       completion:^(BOOL finished){ 
        //whatever else you may need to do 
       }]; 
} 
+0

Hola Andrew, gracias, esto es lo que quiero hacer :) le otorgará la recompensa en 7 horas, no puede premiarte ahora :( – Desmond

+0

será amable de usted para ayudarme a resolver este problema. http://stackoverflow.com/questions/8027984/how-to-have-a-overlay-on-top-of-a-select-uitabbar-item y http ://desbordamiento de pila.com/questions/8028411/which-event-get-called-when-you-click-on-the-uisearchbar-to-call-the-first-respo – Desmond

1

En la primera imagen de su pregunta, está mostrando un UISearchDisplayController que se está utilizando. Para lograr esa animación exacta, necesitarás usar un UISearchDisplayController y modificar su UISearchBar para que se vea como el personalizado que hiciste. Puede arrastrar un UISearchDisplayController en Interface Builder y luego usar el código para cambiar su propiedad searchBar.

self.searchDisplayController.searchbar será lo que modifique si tiene todo conectado correctamente en Interface Builder.

2

La mejor manera de implementar un UISearchBar y un UISearchDisplayController siguientes directrices de Apple está mirando el ejemplo llamada TableSearch, la descripción dice:

muestra cómo buscar el contenido de un UITableView usando UISearchBar y UISearchDisplayController, filtrando efectivamente en y fuera el contenido de esa tabla. Si una aplicación iPhone/iPod Touch tiene grandes cantidades de datos de tabla, este ejemplo muestra cómo filtrarla a una cantidad manejable si el uso de memoria es una preocupación o solo desea que los usuarios se desplacen por menos contenido de tabla.

Espero que esto te ayude.

+0

Hola, Elvis, gracias por la respuesta, he estado usando la pantalla de búsqueda controlador. – Desmond

+0

Cuál fue mi respuesta cinco horas antes –

Cuestiones relacionadas