2016-03-22 11 views
6

Mam problem z UISearchBar programowo dodanej Wewnątrz UIView (na jednym z widoków dzieckiem TabBarController):UISearchController: pasek wyszukiwania początkowo zbyt szeroki

Gdy ekran jest najpierw załadowane, pasek wyszukiwania jest zbyt szeroki, aby w pełni zmieścić się w widoku. Jednak po dotknięciu wewnątrz, a następnie dotknięciu przycisku Cancel pasek wyszukiwania zostanie zmieniony, tak aby pasował również do UIView.

Załadowałem przykładowy projekt na GitHub - nieprawidłowe zachowanie można zaobserwować na drugiej karcie, w klasie BlueViewController. Próbowałem już wielu rzeczy, jak można prawdopodobnie zobaczyć w kodzie i przeszukiwać najbardziej popularne odpowiedzi StackOverflow, ale żaden z nich nie rozwiązał tego problemu dla mnie do tej pory.

Oto link do projektu: https://github.com/asia-t/tabbartest

Byłoby wspaniale, jeśli ktoś może rzucić nieco światła na to, co może być tam dzieje.

enter image description here

Odpowiedz

7

można realizować w następujący sposób naprawić ramę paska wyszukiwania w:

override func viewDidLayoutSubviews() { 
    var searchBarFrame = searchController.searchBar.frame 
    searchBarFrame.size.width = vanillaSearchBar.frame.size.width 
    searchController.searchBar.frame = searchBarFrame 
} 
+0

Aha! Naprawdę to naprawiło :-) Próbowałem czegoś podobnego, ale w niewłaściwym miejscu - zrobiłem to w 'viewDidLoad', gdzie w rzeczywistości było trochę gorzej. To ma sens - dzięki! –

Powiązane problemy