Xcode 5 を使用しています。IOS 6 と IOS 7 の両方と互換性のある UI を備えたアプリを構築したいと考えています。アプリは、iPhone (3gs)、iPhone Retina 3.5、および iPhone Retina 4 と互換性がある必要があります。
iOS6のiPhone(3GS)で見るとUIが歪む。
自動レイアウトを有効にしようとしましたが、一部の画面で問題が解決しません。
Xcode 5 を使用しています。IOS 6 と IOS 7 の両方と互換性のある UI を備えたアプリを構築したいと考えています。アプリは、iPhone (3gs)、iPhone Retina 3.5、および iPhone Retina 4 と互換性がある必要があります。
iOS6のiPhone(3GS)で見るとUIが歪む。
自動レイアウトを有効にしようとしましたが、一部の画面で問題が解決しません。
この場合に役立つマクロがいくつかあります
#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...
}