1

Xcode 5 を使用しています。IOS 6 と IOS 7 の両方と互換性のある UI を備えたアプリを構築したいと考えています。アプリは、iPhone (3gs)、iPhone Retina 3.5、および iPhone Retina 4 と互換性がある必要があります。

iOS6のiPhone(3GS)で見るとUIが歪む。

自動レイアウトを有効にしようとしましたが、一部の画面で問題が解決しません。

4

2 に答える 2

0

この場合に役立つマクロがいくつかあります

#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)

#define APP_VERSION_GREATER_THAN_OR_EQUAL_TO(v)     ([[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] compare:v options:NSNumericSearch] != NSOrderedAscending)

iOS のバージョンが iOS7 よりも大きいかどうかを確認するには:

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
 // iOS 7 specific instruction
}

ただし、この IF-ELSE はまだ長いので、次のようなことができます

#define IS_IOS_7 SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")

その後

if (IS_IOS_7) {
  // instruction...
}
于 2013-10-21T11:17:01.587 に答える