2012-01-11 17 views
5

Mam UISearchBar (z UISearchDisplayController) jako widok tytułu UINavigationBar. Istnieją również dwa przyciski po obu stronach paska wyszukiwania w pasku nawigacyjnym.UISearchBar: jak mogę zatrzymać zmianę rozmiaru po kliknięciu?

Po kliknięciu na UISearchBar, staje się szerszy i obejmuje przycisk po prawej stronie.

Jak mogę go zatrzymać, aby nie stał się szerszy?

miejsca próbował, ale nie działa ->

  • poszerzonej pasek wyszukiwania staje oryginalny rozmiar, jeżeli urządzenie jest obracany. Więc próbowałem dzwoniąc [searchBar setNeedsLayout] w - searchBarTextDidBeginEditing
  • najróżniejszych auto-resizing mask opcji w IB

Edit: Nie wspominając, ale jest to na iPhone (jak możemy umieścić searchbar wewnątrz paska narzędzi w iPadzie ..)

+0

Możliwy duplikat i odpowiedź: http://stackoverflow.com/questions/3006209/uisearchbar-animation-hidding-button –

+0

@CollinPrice Niestety, odpowiedź w linku nie wspomniano praca. :(Dodanie [self.searchBar setFrame: CGRectMake (0.0, 0.0, 150.0, 44.0)], na przykład w searchBarTextDidBeginEditing: (UISearchBar *) metoda searchBar nie zrobił nic ... –

+0

wydaje się wywoływać z searchDisplayControllerDidBeginSearch: ale wciąż rozszerza się trochę - Musi to być automatyczny rozmiar widoku tytułowego –

Odpowiedz

8

Właściwie, biorąc podpowiedź od this answer, jeśli pasek wyszukiwania jest umieszczony w UIView o pożądanym rozmiarze, to jest ustawiony jako widok tytułowy NavBar, nie rozszerza się!

Ale ... Ponieważ nie można zrobić przycisku Anuluj, aby pokazać/nie pokazać, jak chcesz, zdałem sobie sprawę, że to nie jest tak przydatne.
(Jak widać w this question/answer etc)

+0

Tak, myślę, że musimy po prostu umieścić UISearchBar wewnątrz UIView z naszą pożądaną szerokością .. @st – KarenAnne

+0

To jest takie inteligentne - dzięki milionowi. Pomogło mi! – Brittany

Powiązane problemy