全新的iPad Mini屏幕尺寸为7.9英寸.它有视网膜显示器吗?它会自动扩展现有的xib和故事板吗?还是我们必须创建两个版本?
我们处理类似于处理iPhone 5的方式吗?
如何创建定义或条件以查看设备是否正在运行iPad Mini?
小智 60
应用程序将正常工作.但是如果你有一些非常小的UI元素.由于屏幕尺寸的减小,您可能想重新访问它们.
rma*_*ddy 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.
为iPad 2分辨率构建应用程序.新的iPad Mini是非视网膜,分辨率为1024x768,这意味着已经在iPad 1或iPad 2上运行的应用程序可自动在iPad Mini上运行.
我认为Phil Schiller(苹果公司的高级副总裁)表示最好在新闻发布会上推出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]);
Run Code Online (Sandbox Code Playgroud)
编辑:
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];
}
Run Code Online (Sandbox Code Playgroud)
在我的16GB iPad Mini(仅限Wifi)上,这将返回:
机器ID:iPad2,5
型号:iPad
本地化型号:iPad
如果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 )
Run Code Online (Sandbox Code Playgroud)
因此,对于iPad Mini和非视网膜iPad,请执行以下操作:
#define IS_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 512 )
Run Code Online (Sandbox Code Playgroud)
而对于视网膜iPad来说:
#define IS_RETINA_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 1024 )
Run Code Online (Sandbox Code Playgroud)
这应区分两种类型的屏幕,并且无需精确定位模型以达到比例目的.另一种方法是使用自动布局,但是没有它我会有更好的控制感.
我希望这有助于你的问题的第二部分.祝好运 :)
| 归档时间: |
|
| 查看次数: |
27189 次 |
| 最近记录: |