2011-11-04 14 views
6

Jakoś nie wiem dlaczego animacja domyślna nie działa.UISearchBar Nie przesuwa się w górę

Mój pasek wyszukiwania nie przesunął się tak, jak powinien.

widok jest w UIView, zastanawiam się, czy to jest problem.

wliczony układ IB

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

+0

Proszę, rozwiń problem Nie rozumiem twojego problemu –

+0

Witam Vijay, gdy kliknęłam na pasku wyszukiwania, powinien on zostać podniesiony jak pierwsze zdjęcie. jednak mój pasek wyszukiwania (drugi obraz) przesunął pasek nawigacji, ale nie przesunął się na szczyt. – Desmond

+0

Co powinno się podnieść? Klawiatura? Nadal nie rozumiem twojego problemu. – Robert

Odpowiedz

11

paska wyszukiwania w rzeczywistości nie poruszają się w 'push-up' animacji. Zamiast tego pozostaje na miejscu, podczas gdy navbar idzie w górę, w ten sposób przyciągając resztę widoku. Powinieneś być w stanie ręcznie przesuwać pasek wyszukiwania w kodzie, rejestrując się jako jego delegat (UISearchBarDelegate) i odpowiadając na te połączenia.

#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

Cześć Andrew, dzięki to jest wat i wan zrobić :) nagroda będziesz hojność w czasie 7 godzin, nie może przyznać u teraz :( – Desmond

+0

to będzie rodzaj z Tobą, aby pomóc mi rozwiązać ten problem: http://stackoverflow.com/questions/8027984/how-to-have-a-overlay-on-top-a-select-uitabbar-item i http ://przepełnienie stosu.com/questions/8028411/what-event-get-call-when-you-click-on-the-uisearchbar-to-call-the-first-respo – Desmond

1

Na pierwszym obrazku Twojego pytania wyświetlana jest używana kontrolka UISearchDisplayController. Aby uzyskać tę dokładną animację, musisz użyć kontrolera UISearchDisplayController i zmodyfikować jego UISearchBar, aby wyglądał jak niestandardowy. Możesz przeciągnąć kontroler UISearchDisplayController w Konstruktorze interfejsów, a następnie użyć kodu do zmiany jego właściwości searchBar.

self.searchDisplayController.searchbar będzie to, co modyfikujesz, jeśli wszystko poprawnie podłączyłeś w BULLER interfejsu.

2

Najlepszym sposobem wdrożenia UISearchBar i UISearchDisplayController następujące wytyczne Apple jest patrząc na przykład o nazwie TableSearch, opis mówi:

Demonstruje jak szukać zawartość UITableView przy użyciu UISearchBar i UISearchDisplayController, skutecznie filtrując w i poza zawartością tej tabeli. Jeśli aplikacja iPhone/iPod Touch zawiera duże ilości danych tabelarycznych, ten przykład pokazuje, jak odfiltrować go do możliwej do opanowania ilości, jeśli użycie pamięci jest problemem lub po prostu chcesz, aby użytkownicy przewijali zawartość o mniejszej zawartości.

Mam nadzieję, że ci to pomoże.

+0

Witam Elvisa dziękuję za odpowiedź, korzystam z wyświetlacza wyszukiwania kontroler. – Desmond

+0

Jaka była moja odpowiedź była pięć godzin wcześniej –

Powiązane problemy