it-swarm.com.ru

iOS 11 UISearchBar в панели навигации

UISearchBar ведет себя иначе в iOS 11, чем в iOS 10 и ниже.

  • размер изменился
  • отсутствует анимация затухания при нажатии на другой контролируемый вид

Я обработал как-то "исправить" размер с помощью этого кода:

if #available(iOS 11.0, *) {
    searchBar.heightAnchor.constraint(equalToConstant: 44).isActive = true
}

Но я не могу исправить анимацию. Любые идеи, кроме простого анимации панели поиска вручную на толчок?

UIView.animate(withDuration: 0.3, animations: { [weak self] in
    guard let strongSelf = self else { return }
    strongSelf.searchBar.alpha = 0.0
})

Смотрите видео о сломанном эффекте анимации здесь .

9
Darko

Смотрите ответ в UIPercentDrivenInteractiveTransition . Используется для обновления UIViews во время перехода UINavigationController в значение persentage. 

Другими словами, зависит от того, насколько UINavigationController, уже открытый следующим контроллером представления или перемещенный назад, будет иметь различный вид.

Это значение поможет вам обновить панель поиска (альфа, ширина и т.д.)

2
ObranS

Просто оберните его UIView, и анимация вернется.

3
awuu