web-dev-qa-db-ja.com

ナビゲーションバーに関するiOS11の問題prefersLargeTitles

Xcode9ベータ6iOS 11

viewControllerbackground ImageViewtableViewのストーリーボードがあります)searchFooterビューは、ビューのサブビューです。構造は次のとおりです。

enter image description here

AppDelegateクラスで、
UINavigationBar.appearance().prefersLargeTitles = true

そして

UINavigationBar.appearance().setBackgroundImage(UIImage(),for: .default)

UINavigationBar.appearance().shadowImage = UIImage()

viewControllerclassで、navigationItem.searchController = searchControllernavigationItem.hidesSearchBarWhenScrolling = trueを設定しました

アプリケーションを実行すると、shadowImagenavigationBarがまだ存在していることがわかりました。 tableViewをスクロールしたときにnavigationBarが自動的に(prefersLargeTitlesモードではなく)正常にならない(左側のgif)。navigationBarがシステムアプリ(右側のgif)と同じように機能することを願っている。

my appsystem app

奇妙な動作:背景imageViewを削除すると、シミュレーターのシステムアプリと同様に機能します。

なぜ起こったのかわからないのですが、どうやって解決したらいいのでしょうか?ありがとう。

22
user8496305

私はあなたの問題のために小さなアプリケーションを作りました。 Githubでプロジェクトにアクセスできます。

iOS11の透過ナビゲーションバー

注:上にスクロールするときは、UINavigationBarの色を使用する必要があります。

2
serdaryillar

アカウントはStack overflowチームによって削除されました。そこで、別のIDを使用してここにコメントします。私はこの問題をAppleに報告しました。彼らは私にプロジェクトを提供するように頼みました、そして私はそうしました、しかしAppleからそれ以上のコメントはありません。

0
Ringo

TableView Top制約を、ViewControllers Topではなく、NavigationControllerのNavigationsBarのすぐ下に作成します。動作するはずです