2017-09-20 1 views
2

モバイルアプリケーションをiOS 11にアップグレードしていますが、解決策が見つからないという問題があります。IOS 11ステータスバーの変更

IOS 10では、ステータスバーとナビゲーションコントローラをトランスペアレントにしているため、ナビゲーションコントローラの下のイメージは画面の上から開始していました。私はXcodeの9とiOS 11と同じコードをビルドするとき はしかし、結果はこのようになりました:

you can see the problem on top of the image

我々はIOS 10に使用していたコードとXcode 8は以下です。 IOS 11では、ナビゲーションバーまたはステータスバーについて何が変更されているか知っていますか?

if ([self.viewModel profileImage]) { 
    if (diff <= 0) { 
     self.statusBarBackground.alpha = 1.0; 
    } else { 
     self.statusBarBackground.alpha = 1.0; 
     self.statusBarBackgroundHeight.constant = MIN(statusBarHeight, diff); 
    } 

} 

おかげ

+0

を設定するようにしてくださいコード内に永遠にある? –

+0

これは修正と見なすことができるのかどうかは分かりませんが、同じ問題がありましたが、XCode 9のバグであることがわかりました(この時点で確認できません)。また、クリーニングと再構築XCode 8.3.3のアプリでは、コードを変更せずにステータスバーを白いバーが表示された同じiOS 11デバイスの正しい色にしました。 –

+0

これが問題であるかどうかはわかりませんが、ストーリーボードの制約を上部のレイアウトガイドではなくコンテナの上部に変更して問題を解決しました。これにより、iOS 11デバイスで20ピクセルのギャップが発生しましたが、iOS 10デバイスでは問題ありませんでした。 – vrwim

答えて

3

は、ビューコントローラの種類は何ですか、あなたはストーリーボードを使用するか、であるされているcontentInsetAdjustmentBehaviorに

if #available(iOS 11.0, *) { 
tableView.contentInsetAdjustmentBehavior = .never 
} 

または

if #available(iOS 11.0, *) { 
scrollView.contentInsetAdjustmentBehavior = .never 
} 
+0

このメソッドは、scrollViews専用です。 –

+0

ストーリーボード内で行うこともできます。ストーリーボードを開き、コントローラーを選択して右上の属性を選択し、アンダートップバーの選択を解除します。 –

+1

私はウェブビューで問題を抱えていました – Spire

関連する問題