Xcode9ベータ6iOS 11
viewController
、background ImageView、tableView、のストーリーボードがあります)searchFooterビューは、ビューのサブビューです。構造は次のとおりです。
AppDelegate
クラスで、UINavigationBar.appearance().prefersLargeTitles = true
そして
UINavigationBar.appearance().setBackgroundImage(UIImage(),for: .default)
UINavigationBar.appearance().shadowImage = UIImage()
viewController
classで、navigationItem.searchController = searchController
とnavigationItem.hidesSearchBarWhenScrolling = true
を設定しました
アプリケーションを実行すると、
shadowImage
のnavigationBar
がまだ存在していることがわかりました。 tableViewをスクロールしたときにnavigationBarが自動的に(prefersLargeTitlesモードではなく)正常にならない(左側のgif)。navigationBarがシステムアプリ(右側のgif)と同じように機能することを願っている。
奇妙な動作:背景
imageView
を削除すると、シミュレーターのシステムアプリと同様に機能します。
なぜ起こったのかわからないのですが、どうやって解決したらいいのでしょうか?ありがとう。
私はあなたの問題のために小さなアプリケーションを作りました。 Githubでプロジェクトにアクセスできます。
注:上にスクロールするときは、UINavigationBarの色を使用する必要があります。
アカウントはStack overflow
チームによって削除されました。そこで、別のIDを使用してここにコメントします。私はこの問題をAppleに報告しました。彼らは私にプロジェクトを提供するように頼みました、そして私はそうしました、しかしAppleからそれ以上のコメントはありません。
TableView Top制約を、ViewControllers Topではなく、NavigationControllerのNavigationsBarのすぐ下に作成します。動作するはずです