ipad mini 和 ipad air 有何区别?

2023-12-04

当我在模拟器 ipad mini(我使用 ipad 2 配置文件)和 ipad air 上运行时,它显示相同的分辨率 1024x768

对于 UI Kit,它可能会自动调整,但我使用 cocos2d


苹果并不真的希望你能够检测到这一点,因此他们没有提供一种简单的方法来做到这一点。我认为你应该真正问问自己为什么需要知道。

也就是说,我碰巧有一个“标尺应用程序”,这可能是以不同方式对待迷你版的极少数正当理由之一。我把它放在 UIDevice 的一个类别中

界面:

//  UIDevice+JEFkit.h

typedef NS_ENUM (NSUInteger, deviceClass) {

deviceClass_iPhone = 0,    
deviceClass_iPhoneTall = 1,    
deviceClass_iPhoneSix = 2,     
deviceClass_iPhoneSixPlus= 3,

 deviceClass_iPadMini = 10,
 deviceClass_iPad = 11,

deviceClass_unknown

};

@interface UIDevice (JEFkit)

#pragma mark device type..

+(deviceClass )deviceClass;
//some other stuff..
@end

执行:

+(deviceClass )deviceClass{

  NSUInteger greater = ((NSUInteger )fmaxf([[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height));

  switch (greater) {
    case 480:
      return deviceClass_iPhone;
      break;
    case 568:
      return deviceClass_iPhoneTall;
      break;
    case 667:
      return deviceClass_iPhoneSix;
      break;
    case 736:
      return deviceClass_iPhoneSixPlus;
      break;
    case 1024:
      // its an ipad, what size ?
    {

      size_t size1;
      sysctlbyname("hw.machine", NULL, &size1, NULL, 0);
      char *machine1 = malloc(size1 + 1);
      sysctlbyname("hw.machine", machine1, &size1, NULL, 0);
      machine1[size1] = 0;

      if (strcmp(machine1, "iPad1,1") == 0 || strcmp(machine1, "iPad2,1") == 0 || strcmp(machine1, "iPad2,2") == 0 || strcmp(machine1, "iPad2,3") == 0 || strcmp(machine1, "iPad2,4") == 0 ) {

        /* iPad 1 or 2 */
        free(machine1);
        return deviceClass_iPad;
      }

      if ([[UIScreen mainScreen]respondsToSelector:@selector(scale)]) {
        if ([[UIScreen mainScreen] scale] < 2.0) {
          free(machine1);


          return deviceClass_iPadMini; //all other non-retina full sized iPad devices are eliminated, must be first GEN mini

          /// nb the iPad simulator also in here..

        }
      }else{
        ///does not respond to @selector(scale)
        /// should not ever happen

        free(machine1);
        return deviceClass_iPad;
      }

      //ok only retina ipads are left...
      if (strcmp(machine1, "iPad4,4") == 0 || strcmp(machine1, "iPad4,5") == 0 || strcmp(machine1, "iPad4,6") == 0 || strcmp(machine1, "iPad4,7") == 0 || strcmp(machine1, "iPad4,8") == 0 || strcmp(machine1, "iPad4,9") == 0) {
        /* 2nd/3rd gen minis w retina*/


        ////TODO////

        /// future retina minis !!! ///

        free(machine1);
        return deviceClass_iPadMini;
      }

      //known retina minis are eliminated..

      free(machine1);
      return deviceClass_iPad;
    }
      break;
    default:
      break;
  }

  return deviceClass_unknown;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ipad mini 和 ipad air 有何区别? 的相关文章

  • 当应用程序处于后台时,替代 UserNotificationCenter Delegate 的 willPresent

    我正在尝试弄清楚是否可以通过本地通知来实现我的目标 或者是否需要切换到远程通知 我正在练习 iOS 10 Swift 3 方法是构建一个闹钟程序 该程序在一天中的设定时间播放 RSS 更新的广播节目的最新一集 当应用程序位于前台时 可以通过
  • 当 SwiftUI 中列表数据源为空时,如何在视图中心显示文本消息?

    struct LandmarkList View var body some View NavigationView List landmarkData landmark in LandmarkRow landmark landmark 我
  • HTML 5 + iOS - 创建混合应用程序

    我正在尝试将我的本机 iOS 应用程序转换为使用 HTML 5 的混合应用程序 经过研究后我最终得到了jQuery 移动 phoneGap 我的问题是 是否可以将 html 5 和本机 iOS 功能混合在一个单一的版本中 看法 例如我可以使
  • 如何使自定义键盘扩展再次成为第一响应者

    我正在制作一个自定义键盘扩展 在这个键盘中 我有另一个 uitextfield 作为搜索字段 因此当我在自定义键盘上键入时 我不会将文本发送到 safari 的文本字段或某些聊天应用程序的文本字段 而是发送将文本发送到自定义键盘中的 uit
  • 强制变量声明的协议 - Objective C

    是否可以在 protocol中声明变量 只是为了强制程序员在实现类 实现此协议的类 标头和实现中添加这些变量 Thanks 简短回答 不 不可能那样做 您最多可以强制方法和属性的可用性
  • 如何在单击按钮时打开 Instagram 应用程序

    大家好 我正在尝试通过单击按钮打开 Instagram 应用程序 但我没有 我也可以在 plist 中将 Url 方案设置为 instagram NSString instagramURL instagram app NSURL ourUR
  • Objective-C 相当于 Java 枚举或“静态最终”对象

    我试图找到一个与 Java 枚举类型或 public static final 对象等效的 Objective C 例如 public enum MyEnum private String str private int val FOO f
  • App Store Connect 上传错误“您尚未获得云管理分发证书的访问权限”

    使用 Xcode 将 iOS 应用程序上传到 App Store Connect 自动管理签名 并收到此错误 查找和生成签名资产时发生以下错误 与苹果通讯失败 您尚未获得云管理分发证书的访问权限 请联系您团队的帐户持有人或管理员以授予您访问
  • 如何开发iPhone MDM服务器?

    我刚刚阅读了有关适用于 iOS 设备的移动设备管理服务器的信息 但所有文档均指 第三方 MDM 服务器 我的问题是如何自己开发一个 第三方 MDM 服务器 我找不到任何关于此的文档 你有简单的方法和困难的方法 Easy way OSX Li
  • 如何在 UIView 中获取父导航控制器

    我创建了一个UITabBarController在我的应用程序委托中 其中每个选项卡栏项目都有不同的UINavigationController加载自定义的UIViewController带NIB 使用 pushViewController
  • 翻转通过CVOpenGLESTexture获得的OpenGL ES纹理

    在我尝试 OpenGL ES 2 0 的最后一天 当我尝试将两个投影纹理 一个精灵动画和一个视频文件纹理 应用到天空盒时 我开始像存根一样简单地用手敲击键盘 奇迹般地它就成功了 一切都开始工作了 然而 从视频文件创建的纹理是颠倒的 换句话说
  • IOS 无法从 Google Drive 获取文件

    这是我的代码 GTLQueryDrive query GTLQueryDrive queryForFilesList query q NSString stringWithFormat IN parents root self driveS
  • 修改多张照片时只有一个 iOS 权限对话框

    我的应用程序允许用户从相机胶卷中选择多个图像并对这些图像应用编辑 但是 它会提示用户获得每个图像编辑的权限 编辑用户图像时是否可以只显示一个权限对话框 如果是 我该如何将我的编辑分组为一项权限 这是我的应用程序的屏幕截图 我在应用商店中发现
  • iOS 版 Google 地图 SDK 中的热图

    有没有办法添加热图图层适用于 iOS 的 Google 地图 SDK https developers google com maps documentation ios 注意 我指的是存在于Javascript 版本的 Google 地图
  • “找不到开发者磁盘映像”

    最近我收到错误 找不到开发人员磁盘映像 我认为自从我将 iPhone 上的 iOS 更新到 9 1 后就会发生这种情况 如何解决该问题并使 Xcode 支持 iOS 9 1 设 备 Xcode 7 0 1 和 iOS 9 1 不兼容 您需要
  • iOS 上的内存交换和虚拟内存 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Does iOS支持像Linux一样自动运行的内存交换和虚拟内存吗 iOS有虚拟内存 但没有后备存储 因此没有交换内存的调入 调出 A
  • 无法更改 UITabBarItem.image:CSI 中不支持的像素格式

    我试图通过代码更改选项卡栏中显示的图像 我目前正在使用 Swift 和 Xcode 6 beta 3 我导入了 tabBarImage png 并 电子邮件受保护 cdn cgi l email protection在 Images xca
  • 管理 iOS 中的布局

    我是新来的iOS开发方面 我对 JAVA Swing 和 Windows 应用程序有扎实的背景 我想学习如何进行布局iOS 我猜iOS没有 布局管理器 就像 Java Swing 中的那样 发展的唯一出路UI是否指定每个控制器的尺寸和位置
  • 使用 Xcode 6 XLIFF 导出的 iOS 本地化/国际化设置 Bungle

    背景 Xcode 6 添加了快速导出功能 可为每种语言创建单个 XLIFF 文件 只需从文件导航器中选择您的项目 然后选择菜单项编辑器 导出以进行本地化 Issue 它工作得非常好 并且 XML 中包含了所有内容 除了设置捆绑字符串 有人有
  • UIPopViewController 不工作

    我有一个 xib 文件 其中有 h 和 m 链接 在 xib 中有一个带有 textView 的 UIView 我想要对该视图执行的操作是 当您单击按钮时将其作为 UIPopViewController 打开 这是我的代码 IBAction

随机推荐