Xcode を 5 にアップデートしたところです。アプリをビルドしようとしていますが、iOS7 では非常にきれいに見えますが、ツールバーに問題があります。ツールバーのボタンは、ステータス バーのすぐ近くにあります。Ui が何らかの変更を加えると、iOS 5 および 6 の UI が壊れます。最適なアプローチは何ですか? iOS 7 用に別のストーリーボードを作成することは良いアプローチと見なされますか? ツールバーの問題を解決する他の方法はありますか?
1325 次
1 に答える
7
最善の方法は、変更を行う前に iOS バージョンに多くのチェックを追加することです。次のマクロを *_prefix.pch ファイルに配置します。
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
次に、iOS 7 固有の機能に次のように使用します。
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
self.automaticallyAdjustsScrollViewInsets = YES;
// or anything. Above line not specific to question, just an example
}
Xcode 5 Interface Builder では、サイズ インスペクター (ユーティリティ (3 番目) 列の 4 番目のタブ) で iOS 7 と 6 以下の間のオフセットを指定し、ファイル インスペクター (1 列目のタブ) で 7 と < 7 のレンダリングを切り替えることもできます。ユーティリティ列)。これは通常、7 のレイアウトでステータス バーまたはナビゲーション バーを考慮しなければならない場合に役立ちます。
于 2013-09-19T21:17:27.217 に答える