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

iOS 10

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.

questionAnswers(6)

yourAnswerToTheQuestion