日常开发中会遇到不同设备机型适配的问题,那么如何进行设备类型的区分具体请看如下:
其中 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];
以上便是此次分享的全部内容,希望能对大家有所帮助!
网友评论