iOS

设备类型判断 - iOS

2020-10-15  本文已影响0人  survivorsfyh

日常开发中会遇到不同设备机型适配的问题,那么如何进行设备类型的区分具体请看如下:
其中 UIUserInterfaceIdiom 是对应不同设备的参数,根据不同的条件语句进行相应的功能实现即可;

typedef NS_ENUM(NSInteger, UIUserInterfaceIdiom) {
    UIUserInterfaceIdiomUnspecified = -1,
    UIUserInterfaceIdiomPhone NS_ENUM_AVAILABLE_IOS(3_2), // iPhone and iPod touch style UI
    UIUserInterfaceIdiomPad NS_ENUM_AVAILABLE_IOS(3_2), // iPad style UI
    UIUserInterfaceIdiomTV NS_ENUM_AVAILABLE_IOS(9_0), // Apple TV style UI
    UIUserInterfaceIdiomCarPlay NS_ENUM_AVAILABLE_IOS(9_0), // CarPlay style UI
};

使用实例

该实例是针对 UIAlertController 提示框渲染方式的区分,因在 iPad 端仅支持 UIAlertControllerStyleAlert 对 iPhone 的底部弹出方式不兼容,故在此对 UIAlertControllerStyle 做了区分;

    /** 判断是否为iPhone*/
    #define kISiPhone   (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    /** 判断是否为iPad*/
    #define kISiPad     (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

    UIAlertControllerStyle style = UIAlertControllerStyleActionSheet; // 注:UIAlertControllerStyleActionSheet 仅支持 iPhone,iPad 需使用 UIAlertControllerStyleAlert
    if (kISiPad) {
        style = UIAlertControllerStyleAlert;
    }
    UIAlertController *alertCon = [UIAlertController alertControllerWithTitle:nil
                                                                      message:nil
                                                               preferredStyle:style];

以上便是此次分享的全部内容,希望能对大家有所帮助!

上一篇下一篇

猜你喜欢

热点阅读