iOS 11 导航栏中的 UISearchBar

iOS 11 UISearchBar in navigation bar

UISearchBar 在 iOS 11 和 iOS 10 及以下版本中的行为不同。

我用这段代码以某种方式处理了 "fix" 大小:

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
})

观看破碎动画效果的视频here

UIPercentDrivenInteractiveTransition中查看答案。它用于在百分比值的 UINavigationController 转换期间更新 UIView。

换句话说,取决于 UINavigationController 已经打开了多少,下一个视图控制器或向后移动的视图会有不同的外观。

此值将帮助您更新搜索栏(alpha、宽度等)

只要用一个 UIView 包裹它,动画就回来了。