4

iOS 7 でナビゲーション バーの色が正常に表示される

iOS 6.0 を導入していますが、システム バージョンが iOS 7.0 以降の場合、iPhone 4 ではナビゲーション バーの色の一部が正しく表示されません。iPhone 5 では正常に動作します。

これが私がやっている方法です:

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    self.edgesForExtendedLayout = UIRectEdgeNone;
    [self.navigationController.navigationBar setBarTintColor:[UIColor blueColor]];
    [self.navigationController.navigationBar setTranslucent:YES];
}


#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

iPhone 4 には半透明性に問題があると聞いたので、最後の行 (setTranslucent) が問題かもしれませんが、iOS 6 でもナビゲーションバーを半透明に設定できると確信しています。次にそれを取り除き、何か修正があれば更新します。

編集:表示されたビュー コントローラーを閉じると、バーの色が消えるようです。しかし、iPhone 4 以外では台無しにはなりません。

4

1 に答える 1