Barra de pesquisa do iOS 11 na NavigationBar
Com o iOS 11, a Apple redesenhou o UISearchBar, tornando os cantos mais redondos e a altura maior. Adicionar um UISearchBar à barra de navegação é bem simples, basta defini-la como titleView of the navigationItem usingnavigationItem.titleView = searchBar
.
No entanto, no iOS 11, ele não parece mais funcionar como esperado. Veja as telas nas quais comparamos a mesma configuração usando o iOS 10 e iOS 11
Você pode ver claramente que a Barra de Pesquisa aumenta o tamanho da Barra de Navegação, mas os botões da barra não são alinhados corretamente. Além disso, o searchBar não usa mais o espaço disponível à esquerda.
Colocando a barra de pesquisa em uma exibição de wrapper para obter o botão Cancelar no iPad, conforme descrito aquiO botão Cancelar não é mostrado no UISearchBar também não parece mais funcionar, pois o searchBar não fica visível.
Se alguém tiver problemas semelhantes ou já sabe como consertar / melhorar isso, ficaria muito grato.
Isso foi criado usando o Xcode 9 Beta 4. Talvez versões futuras resolvam esse problema.
ATUALIZAR:
Como isso não é corrigido, decidimos usar a seguinte solução. Adicionamos um novo UIBarButtonItem ao NavBar, que apresenta um novo ViewController, onde apenas colocamos um searchBar e nada mais no NavBar que parece funcionar. Usar a resposta selecionada pode ser a melhor solução, já que a Apple com iOS 11 deseja que usemos esse novo design, mesmo que não nos dê o resultado que originalmente queríamos. Outra maneira de resolver isso pode ser uma SearchBar personalizada, mas esse é outro tópico.