相关疑难解决方法(0)

检测设备是否为iPhone X.

我的iOS应用程序使用自定义高度UINavigationBar导致新iPhone X上出现一些问题.

如果应用程序在iPhone X上运行,是否有人已经知道如何以编程方式(在Objective-C中)进行可靠检测?

编辑:

当然,检查屏幕的大小是可能的,但是,我想知道是否有一些"内置"方法,如TARGET_OS_IPHONE检测iOS ...

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
    if (screenSize.height == 812)
        NSLog(@"iPhone X");
}
Run Code Online (Sandbox Code Playgroud)

编辑2:

我不认为,我的问题是链接问题的重复.当然,有一些方法可以"测量"当前设备的不同属性,并使用结果来决定使用哪个设备.然而,这不是我的问题的实际问题,因为我在第一次编辑时试图强调.

实际的问题是:"是否可以直接检测当前设备是否是iPhone X(例如,通过某些SDK功能)或者我是否必须使用间接测量"

到目前为止给出的答案,我认为答案是"不,没有直接的方法.测量是要走的路".

iphone objective-c ios iphone-x

248
推荐指数
16
解决办法
16万
查看次数

iOS设备返回不同格式的设备型号,为什么?

我使用此方法获取设备型号名称:

+ (NSString *) machineModel
{
    const char *name = "hw.model";
#if TARGET_OS_IPHONE
    // .model on iOS returns internal model name (e.g. "N51AP") when we'd prefer to see the model identifier here ("iPhone6,1")
    name = "hw.machine";
#endif

    int error = 0;
    size_t length = 0;
    error = sysctlbyname(name, NULL, &length, NULL, 0);

    if (error != 0) {
        return nil;
    }

    char *p = malloc(sizeof(char) * length);
    if (p) {
        error = sysctlbyname(name, p, &length, NULL, 0);
    }

    if (error != …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

6
推荐指数
1
解决办法
722
查看次数

标签 统计

ios ×2

objective-c ×2

iphone ×1

iphone-x ×1