我正在学习iOS开发,我对这些设备尺寸略感困惑。 当我在模拟器中测试时,我有这样的选择:
Hardware -> Device -> iPhone
Hardware -> Device -> iPhone (Retina 3.5 inch)
Hardware -> Device -> iPhone (Retina 4 inch)
我应该针对所有这三个选项测试我的应用吗?相应屏幕尺寸对应哪部手机? (例如,当我们对3.5英寸进行测试时,它的意思是什么?对于iPhone来说它适合吗?)。
答案 0 :(得分:1)
除非你的iPhone 5与以前的iPhone完全不同,否则你不需要过多担心屏幕尺寸。无论何时在iOS中执行任何类型的自定义渲染,都可以指定坐标,而不是像素。 iOS会根据您的设备自动计算像素值。
您需要关注的唯一一件事就是图像时的视网膜显示。为此,您只需要一个双倍大小的图像,最后使用@ 2x。例如,对于视网膜前电话,您可能会有一个100x100像素的图像称为image.png
。然后,您需要一个名为image@2x.png
的200x200像素。 iOS将在需要时自动加载视网膜版本。
如果您想为iPhone 5提供不同的用户界面,那么解决方案@ user2277872将会很好。
你一定要考虑使用Autolayout,因为这会使生活变得非常容易,特别是如果你不会为iPhone 5设置不同的UI,因为它会自动定位元素。您提供的一组预定义规则。例如,您可能希望按钮始终距离屏幕底部20px。无论屏幕是4英寸还是3.5英寸,Autolayout都会为您完成此操作。
答案 1 :(得分:0)
你应该对所有这些进行测试。首先是iPhone 4之前的设备,其次是iPhone 4和iPhone 4s。最后一个是iPhone 5。
答案 2 :(得分:0)
硬件 - >设备 - > iPhone
//iPhone 3gs & iPod Touch 3 & early
硬件 - >设备 - > iPhone(Retina 3.5英寸)
//iPhone4,4s & iPod Touch 4
硬件 - >设备 - > iPhone(Retina 4英寸)
//iPhone5 & iPod Touch 5
答案 3 :(得分:0)
嗯,不同的iPhone有不同的屏幕尺寸。例如,iPhone 4,4S的尺寸为
320 X 480
iPhone 5
1136 X 640
因此,您需要做的是检查屏幕大小,或检查当前正在运行的设备类型,并让它返回。
这是在另一页上找到的答案:here
if([[UiDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
if(UIScreenOverscanCompensationScale==1136/640){
//move to your iphone5 storyboard
[UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];
}
else{
//move to your iphone4s storyboard
[UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];
}
}
答案 4 :(得分:0)
3.5英寸的屏幕尺寸与iPhone 5的每个iPhone / iPod触摸屏的尺寸相对应.iPhone 5的屏幕为4英寸。
您必须针对所有屏幕尺寸测试您的应用。事实上,Apple建议使用自动布局确保即使屏幕尺寸不同,您的应用也会看起来不错,例如当用户拨打电话时状态栏变大。
答案 5 :(得分:0)
看到iPhone有两种不同的屏幕尺寸3.5英寸和4英寸,配备3.5英寸屏幕的iPhone可以选择具有视网膜和非视网膜显示,但是从iPhone 5开始的4英寸屏幕只有视网膜显示屏。 iPhone5的屏幕尺寸 320px568p ,iPhone5以下 320x480
所以如果您打算同时定位应用的屏幕尺寸,则应测试所有尺寸的iPhone