ユーザーがインターネット共有をオンにすると、上部の黒いバーが青色に変わり、幅が広くなり、これによりユーザー インターフェイスが少し下がり、いくつかの問題が発生します。アイテムが押し下げられているため、顔が奇妙に見えるようになりました。下部で切断される可能性があります。この状況に対処する方法はありますか?もしそうなら、それを助けるためのチュートリアルはありますか? ずっと探してるけど全然出てこない!
質問する
141 次
1 に答える
2
UIApplicationWillChangeStatusBarFrameNotification
ステータスバーの新しいサイズをUIApplicationDidChangeStatusBarOrientationNotification
知らせる通知を処理できます。必要に応じて、これを使用して UI を調整できます。ハード コーディング (40pt など) は避け、代わりに通知から新しいステータス バー フレームを取得します。
高さが必要な場合は、簡単に引き出すことができます。ステータス バー フレームでさらに複雑なことを行う必要がある場合は、画面座標から独自のビューの座標系に変換する必要があります (たとえば、フル スクリーン レイアウトのビュー コントローラーがあり、その下に配置する必要がある場合)。 :
- (void)statusBarFrameWillChangeNotification:(NSNotification *)notification
{
NSValue *rectValue = notification.userInfo[UIApplicationStatusBarFrameUserInfoKey];
CGRect statusBarFrame = [rectValue CGRectValue];
// if you just need the height, you can stop here
// otherwise convert the frame to our view's coordinate system
UIWindow *targetWindow = self.view.window;
// fromWindow:nil here converts from screen coordinates to the window
CGRect statusBarFrameWindowCoords = [targetWindow convertRect:statusBarFrame
fromWindow:nil];
CGRect frameRelativeToOurView = [self.view convertRect:statusBarFrameWindowCoords
fromView:targetWindow];
// ...
}
座標の変換は、すべてのビュー コントローラーがデフォルトで全画面レイアウトになっている iOS 7 で特に重要になります。
于 2013-08-29T11:31:20.687 に答える