カスタム トースト ライブラリを作成しました (非常にシンプルで、ナビゲーション バーの下に表示されるボックスのみ)。私のターゲットグループであるiOS 6でうまく動作します。しかし、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 共有アプリケーション].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であることが判明したため
これは高さと幅が一巡するためで、回答はコメントから来ました