IOS 11 UIRefreshControl с NavigationBar LargeTitle и SearchController исчезают

У меня есть navigationBar с большим Title и searchcontroller, и у моего tableView есть refreshcontrol.

Когда я пытаюсь обновить ActivityIndicator refreshcontrol, исчезает, но процесс обновления продолжается, даже когда процесс завершается, и я вызываю .endRefreshing() из UIRefreshControll, navigationBar не возвращается к нормальному размеру.

введите описание изображения здесь

Кто-то с той же проблемой?

Ответ 1

Я искал решение для этого уже несколько недель, и сегодня я наконец-то заставил его работать. Решение очень простое, я не могу поверить, что не нашел этого раньше.

Я использовал обычный UIViewController с UITableView. Мои ограничения макета были настроены таким образом, чтобы UITableView был прикреплен с 0 к нижней и верхней направляющим макета следующим образом:

enter image description here

Как только я изменил это и прикрепил UITableView к Superview с 0 по всем краям, он волшебным образом начал работать:

enter image description here

Мне даже не пришлось ничего настраивать. Я очень надеюсь, что это поможет вам, потому что это так раздражает...


Если вышеупомянутое не работает, чем вам нужно в дополнение к нему, установите

self.extendedLayoutIncludesOpaqueBars = YES;

или проверьте "Расширить края /Under Opque Bar" в раскадровке

Ответ 2

Try

self.extendedLayoutIncludesOpaqueBars = YES;

Если у вас непрозрачные панели навигации. Это исправило проблему для меня.

Ответ 3

Попробуйте использовать этот фрагмент кода:

self.navigationController?.navigationBar.prefersLargeTitles = false
self.navigationController?.navigationBar.prefersLargeTitles = true;