2014-01-22 21 views
1

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

+0

这不是iOS,这是改变的原因,它是iPhone 5和iPhone5的不同之处。如果您希望在同一位置观看,只需移除自动布局 –

+2

为什么您需要支持iOS 5甚至iOS 6?考虑到iOS 7占所有设备的80%,除非您专门针对较旧的设备,否则仅通过iOS 7即可为您省去很多麻烦。 – CaptainRedmuff

回答

0
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 6 
} 
else if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 7 
} 

你可以试试这个,这段代码会给你ios的版本。让我知道是否有帮助.. :)

编辑:

如果你希望得到您的屏幕大小尝试下面的代码:

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
if (screenRect.size.height == 568) { 
    //Its IPhone 5 
} 
else if (screenRect.size.height == 480){ 
    //Its below iPhone 5 
} 
+0

您不应该使用'systemVersion'来检查您正在运行的iOS版本。但是你应该检查基础版本:'if(floor(NSFoundationVersionNumber)<= NSFoundationVersionNumber_iOS_6_1)' – rckoenes

+0

@rckoenes systemVersion有什么不好的影响?我不知道。让我知道,我会编辑我的答案。 – Rashad

+0

那么'systemVersion'就是一个字符串,你正在投射到一个浮点。然后比较。 'foundationVersionNumber'是底层SDK的编号,可以用来表示它的变化。 Apple建议您使用'foundationVersionNumber'来检测iOS版本。例如,Apple TV是systemVersion与iOS版本号不同,但不构成基础编号。 – rckoenes

3

你不应该检查设备或iOS模型。您应该使用Auto Layout或UIView Autoresizing蒙版。有关于这些主题的各种WWDC视频。