新iPad Mini的屏幕尺寸为7.9英寸。它有视网膜显示器吗?它会自动缩放现有的xib和故事板吗?还是我们必须为每个创建两个版本?
我们处理它的方式与我们处理iPhone 5的方式类似吗?
如何创建定义或条件以查看设备是否正在运行iPad Mini?
答案 0 :(得分:60)
应用程序可以正常运行。但是如果你有一些非常小的UI元素。由于屏幕尺寸的减小,你可能想重新访问它们。
答案 1 :(得分:56)
如果您的应用在iPad 1或iPad 2上运行,它将在新iPad mini上正常工作。迷你上没有视网膜显示屏。从应用程序的角度来看,它与iPad 2相同。
编辑:有人询问如何确定应用程序何时在iPad mini上运行。没有API检查。屏幕尺寸没有帮助。 UI_USER_INTERFACE_IDIOM()
无济于事。直到有人真的有一个,没有办法知道UIScreenMode pixelAspectRatio
是否有任何不同(可能与iPad 2相同)。
这只留下一种可能性 - 从machine
获取uname()
并对此值进行硬编码检查。这绝不是一种理想的方法。在撰写本文时,我们不知道它的价值是什么。也许 iPad5,x 假设第四代iPad iPad4,x 。
编辑:到目前为止,我已经看到一个报告,iPad mini返回iPad2,5(是的,这是两个逗号五)以及机器名称的iPad2,6和iPad2,7。
答案 2 :(得分:7)
构建适用于iPad 2分辨率的应用。新的iPad Mini是非视网膜,分辨率为1024x768,这意味着已经在iPad 1或iPad 2上工作的应用程序可自动在iPad Mini上运行。
答案 3 :(得分:7)
我认为菲尔席勒(Apple的高级副总裁)表示最好在press event推出iPad Mini(大约53:00进入主题演讲)
然后他接着说:我们选择哪种屏幕尺寸?为什么?团队工作非常努力 想着这个。我们想要一款能够全部运行的iPad 在没有开发人员的情况下为iPad编写的神奇软件 做任何工作......
...像素甚至更容易记住,因为它们正是如此 相同。最初的iPad和iPad 2是1024 x 768和新的 iPad Mini是1024 x 768. 这意味着所有为之创建的软件 iPad的iPad Mini工作原理不变。
因此,总而言之,为了回答您的问题,iPad Mini没有Retina显示屏,您也无需进行任何额外的工作。 iPad Mini将使用您已经为iPad创建的故事板或xib。
然后就检测而言,我找不到任何东西来证明这一点(因为它们还没有被释放)但是我愿意打赌下面会输出“iPad Mini”。
NSLog(@"%@",[[UIDevice currentDevice] model]);
修改强>
NSLog(@"\nMachine ID: %@\nModel: %@\nLocalized Model: %@",machineName(),[[UIDevice currentDevice] model],[[UIDevice currentDevice] localizedModel]);
NSString *machineName()
{
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine
encoding:NSUTF8StringEncoding];
}
在我的16GB iPad Mini(仅限Wifi)上,这将返回:
机器ID:iPad2,5
型号:iPad
本地化型号:iPad
答案 4 :(得分:7)
如果iPad Mini和非视网膜iPad的屏幕尺寸相同,那么您是不是可以使用用于确定设备屏幕是iPhone 5还是iPhone 4的内容:
#define IS_WIDESCREEN5 ( [ [ UIScreen mainScreen ] bounds ].size.height == 568 )
#define IS_WIDESCREEN4 ( [ [ UIScreen mainScreen ] bounds ].size.height == 480 )
对于iPad Mini和非视网膜iPad,请执行以下操作:
#define IS_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 512 )
对于视网膜iPad来说:
#define IS_RETINA_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 1024 )
这应区分两种类型的屏幕,并且无需精确定位模型以达到比例目的。另一种方法是使用自动布局,但是没有它我会有更好的控制感。
我希望这对您问题的第二部分有所帮助。祝你好运:)
答案 5 :(得分:4)
你不必做任何不同的事情。它应该像苹果提到的那样自动运行。分辨率仍然与iPad相同。
答案 6 :(得分:4)
iPad mini使用与非视网膜iPad相同的分辨率,iOS将使用1x图形。 请参阅此链接... link
答案 7 :(得分:3)
对于ipad 1和2,ipad mini的图像相同。 但是建议您也使用@ 2x图像作为视网膜屏幕。因为,一旦你的应用程序在应用程序商店,你就无法阻止人们在带有视网膜显示器的ipad上下载它。
所以在这个时间点,你必须为视网膜和非视网膜制作图像。
以编程方式,ipad视网膜显示不需要单独的xib文件。只需为所有图像资源保留imageName@2x.png。
答案 8 :(得分:0)
要检测iPad Mini(任何型号)我使用此代码(在iOS 10.x上测试):
- (BOOL)isIPadMini {
return [[UIDevice currentDevice].name hasPrefix:@"iPad Mini"];
}