Iphone 如何在ios中为多个设备设置帧?

Iphone 如何在ios中为多个设备设置帧?,iphone,objective-c,ios5,ios7,Iphone,Objective C,Ios5,Ios7,大家好,我是新的ios开发人员。我正在创建一个将在ios5和ios7中运行的应用程序。我的问题是,当我在模拟器中完美地为ios5设置图像帧时,但当我在设备上运行它时,Y坐标会自动增加,图像的位置会发生变化。请任何人告诉我为什么会发生这种情况,以及如何在单个应用程序中为不同的设备设置帧。你不应该检查设备或iOS型号为了这个。您应该使用自动布局或UIView自动调整大小遮罩。关于这些主题,WWDC有各种各样的视频。改变的原因不是iOS,而是iPhone为什么支持iOS 5,甚至iOS 6?考虑到约8

大家好,我是新的ios开发人员。我正在创建一个将在ios5和ios7中运行的应用程序。我的问题是,当我在模拟器中完美地为ios5设置图像帧时,但当我在设备上运行它时,Y坐标会自动增加,图像的位置会发生变化。请任何人告诉我为什么会发生这种情况,以及如何在单个应用程序中为不同的设备设置帧。

你不应该检查设备或iOS型号为了这个。您应该使用自动布局或UIView自动调整大小遮罩。关于这些主题,WWDC有各种各样的视频。

改变的原因不是iOS,而是iPhone为什么支持iOS 5,甚至iOS 6?考虑到约80%的设备上都安装了iOS 7,除非您专门针对较旧的设备,否则只使用iOS 7可以省去很多麻烦。您不应该使用
systemVersion
检查您正在运行的iOS版本。但是你应该检查基础版本:<代码>(地板)(NSoundation版本号)@rckoenes systemVersion是否有任何不良影响?我不知道。让我知道,我会编辑我的答案。
systemVersion
只是一个字符串,您要将其转换为浮点数。然后进行比较。
foundationVersionNumber
可以说是底层SDK的编号,用于识别其工作中的更改。Appl建议您使用<代码>基础版本号<代码>来检测iOS版本。例如,苹果电视系统版本与iOS版本号不同,但不构成基础号。@ RCKONESS >编辑。谢谢…
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){
    //IOS 6
}
else if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1){
    //IOS 7
}
CGRect screenRect = [[UIScreen mainScreen] bounds];
if (screenRect.size.height == 568) {
    //Its IPhone 5
}
else if (screenRect.size.height == 480){
    //Its below iPhone 5
}