13

iOS6 を離れたときに、Xcode 4.6 を使用して UISplitView アプリを開発していました。

ここに画像の説明を入力

今、私は新しい Xcode5 に移行し、このデザインになりました:

ここに画像の説明を入力

UINavigationBar は完全に私の UISearchBar と重なっています...

Leo Natan は、iOS 6/7 Deltas の使用について教えてくれましたが、UISplitViewControllers をプログラムで作成および追加しているため、

これはうまくいかないかもしれません プログラムで iOS 6/7 を設定する必要がありますが、方法がわかりません。

4

4 に答える 4

18

iOS 7 では拡張されたエッジがあり、そのためナビゲーション バーが検索バーに重なっています。self.edgesForExtendedLayout = UIRectEdgeNone;これは UIVewControlelr プロパティで設定できます。また、iOS のバージョンに応じてチェックを行うこともできます。デバイスの iOS の現在のバージョンに応じて行うことができます。

NSString *version = [[UIDevice currentDevice] systemVersion];
int ver = [version intValue];
if (ver < 7){
//iOS 6 work
}
else{
//iOS 7 related work
}
于 2013-09-25T15:52:51.023 に答える
5

また、 NSFoundationVersionNumber を使用できます

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
  // > iOS7
} else {
  // <= iOS6
}
于 2013-11-26T14:54:43.180 に答える
3

この問題を解決するためのマクロを作成できます。それは私にとって便利です。

#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 )
于 2013-11-27T09:38:27.577 に答える
-2

ビューが UINavigationController に埋め込まれている場合は、ルート ナビゲーション バーの [半透明] のチェックを外すだけです。

ストーリーボードでナビゲーション コントローラー シーンを選択し、次にナビゲーション バーを選択し、属性インスペクター (ユーティリティ - 4 タブ) で「半透明」のチェックを外します。

于 2013-12-10T15:07:54.980 に答える