私はカスタムトーストライブラリを作成しました(非常に単純なナビゲーションバーの下に表示されるボックス)。私のターゲットグループであるiOS 6ではうまくいきます。しかし、iOS 7がリリースされて以来、正しく表示されませんでした。iOS 7ステータスバーの高さと幅の問題を修正する方法
私はそれがこのコードを介していた修正しようとした方法:
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7,0")){
self.offset = [UIApplication sharedApplication].statusBarFrame.size.height + self.viewController.navigationController.navigationBar.frame.size.height;
}
私はiOSのバージョンが7であるかどうかを検出するためにスタックオーバーフローで見つけることができるマクロを作った後、ステータスバーの高さを追加し、ナビゲーションの高さこれは、iOS 7ではポートレートモードで正しく動作しますが、私は風景のオフセットに切り替えると512になりますか?
これは誰でも方法を説明できますが、これをどのように修正できますか?
コードを分割することを決定したため、コメントに違いがあります。私がしたのは:
CGFloat statusBarHeight = [UIApplication sharedApplication] .statusBarFrame.size.height;それが何らかの理由でステータスバーのため結局のところ
CGFloat navBar = self.viewController.navigationController.navigationBar.frame.size.height;
self.offset = statusBarHeight + navBar;
NSLog(@"Init - statusBarHeight: %f, navBar: %f", statusBarHeight, navBar);
が縦20内にあり、風景の中に、それは高さと幅が振り向いているので、これは480
で、答えはコメントから来た
あなたはあなたの答えを投稿することができた場合、私はそれを受け入れることができ –
を切り替えている。これは本当です、ありがとうこの回答は、ステータスバーの高さを正しく報告するiOS 8では機能しません。 – Haagenti