web-dev-qa-db-ja.com

ナビゲーションバーのiOS11 UISearchBar

UISearchBarは、iOS11とiOS10以下では動作が異なります。

  • サイズが変更されました
  • 制御されている別のビューを押したときのフェードアウトアニメーションがありません

私はこのコードでなんとかしてサイズを「修正」するために処理しました:

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

壊れたアニメーション効果のビデオを見る ここ

10
Darko

IPercentDrivenInteractiveTransition で答えを見てください。これは、persentage値のUINavigationController遷移中にUIViewを更新するために使用されます。

つまり、次のビューコントローラをすでに開いているUINavigationControllerの量に応じて、または後方に移動すると、ビューの外観が異なります。

この値は、検索バー(アルファ、幅など)を更新するのに役立ちます

2
ObranS

UIViewでラップするだけで、アニメーションが戻ってきます。

3
awuu