如何根据iphone型号显示视图

时间:2014-04-17 08:55:03

标签: ios iphone view

我对iphone 4 / 4S和iphone 5 / 5s / 5c有两种不同的看法。我需要根据手机的型号显示正确的视图。 有人可以告诉我你如何编写应用程序来检查手机型号,然后显示3.5或4英寸的视图?非常感谢!

3 个答案:

答案 0 :(得分:3)

我在我的应用中创建了一个宏,并使用它来检查设备:

#define IS_IPHONE_5         ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

以下列方式使用它:

if (IS_IPHONE_5) {

    //iPhone 5x specific code

} else {

    //iPhone 4x specific code
}

注意:我的部署目标只是iPhone,没有其他iOS设备,因此代码是安全的,除非iPhone的未来版本具有其他尺寸。

答案 1 :(得分:1)

您可以使用https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/Reference/UIDevice.html

另请参阅链接Determine device (iPhone, iPod Touch) with iPhone SDK

请参阅链接:https://gist.github.com/Jaybles/1323251。您需要包含UIDeviceHardware.h&amp;项目中的UIDeviceHardware.m文件

UIDeviceHardware *h=[[UIDeviceHardware alloc] init];
[self setDeviceModel:[h platformString]];
[h release];

希望这有帮助。

答案 2 :(得分:1)

您可以将类别写入UIDevice以检查设备屏幕高度:

// UIDevice+Utils.h
@interface UIDevice (Utils)
@property (nonatomic, readonly) BOOL isIPhone5x;
@end

// UIDevice+Utils.m
@implementation UIDevice (Utils)
@dynamic isIPhone5x;
- (BOOL)isIPhone5x {
    BOOL isIPhone5x = NO;
    static CGFloat const kIPhone5Height = 568;
    if (self.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
        CGRect screenBounds = [UIScreen mainScreen].bounds;
        if (screenBounds.size.width == kIPhone5Height || screenBounds.size.height == kIPhone5Height) {
            isIPhone5x = YES;
        }
    }
    return isIPhone5x;
}
@end

// Usage
if ([UIDevice currentDevice].isIPhone5x) {
    // Use 4 inch view here
} else {
    // Use 3.5 inch view here