将ipad应用程序转换为iphone5

将ipad应用程序转换为iphone5,iphone,ios,ios5,Iphone,Ios,Ios5,如何修改代码,使同一应用程序可以在iphone上使用相同的UI元素运行。 我在InfoPlist中做了更改,并使其通用化,但问题是我并没有使用stroryboard或nib、xib文件来显示UI元素。此外,我硬编码的高度和宽度为特定的按钮或标签,框架等 那么,有没有办法将屏幕自动调整为iphone的ipad视图,或者我需要为iphone编写具有新高度和宽度的所有代码 就像在android中一样,我检测高度和宽度,并根据它除以2或3,将特定的UI项放置在不同的屏幕大小上 另外,我如何检测应用程序是

如何修改代码,使同一应用程序可以在iphone上使用相同的UI元素运行。 我在InfoPlist中做了更改,并使其通用化,但问题是我并没有使用stroryboard或nib、xib文件来显示UI元素。此外,我硬编码的高度和宽度为特定的按钮或标签,框架等

那么,有没有办法将屏幕自动调整为iphone的ipad视图,或者我需要为iphone编写具有新高度和宽度的所有代码

就像在android中一样,我检测高度和宽度,并根据它除以2或3,将特定的UI项放置在不同的屏幕大小上


另外,我如何检测应用程序是否在iphone 4、iphone 5或iPad上运行,以便更改图像、值或高度和宽度?

为iphone和iPad创建单独的笔尖

那么,你必须为所有组件设置框架,然后检查设备是否为ipad或iphone


您可以使用以下方法获得屏幕边界:

[[UIScreen mainScreen] bounds];

您必须进行的更改的数量取决于您以前如何设计代码,如果您一直使用绝对值,您将遇到比使用相对值更多的问题…

您可以查看视图的UIViewAutoresizingMask属性,例如:

 view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
关于如何检查您是否使用iPhone 5,您可以使用以下代码行:

BOOL isIPhone5 = [[UIScreen mainScreen ] bounds ].size.height == 568  ? YES : NO ;

“…我没有使用故事板或nib文件来显示UI元素。我还硬编码了特定按钮或标签等的高度和宽度。”正如我所说,我没有使用过任何笔尖,我也不想使用,因为我的应用程序都是图形和动画,如果我想为iphone和ipad创建笔尖文件,这意味着我必须从一开始就开始新项目……那么还有其他解决方案吗?或者,我如何才能签入设备为iphone或ipad的每个文件?我需要通过此进行检查每次访问该类或UI元素类时,UI\u USER\u INTERFACE\u IDIOM()?对吗?嗯,你基本上是通过硬编码你的UI东西来伤到自己的脚的-如果你有NIB或故事板,很可能你根本不需要更改任何代码。这意味着我没有任何选择来启动具有故事板支持的新项目,对吧?autoresizingmask在我的情况下不起作用。。。您知道有什么方法可以在运行时将设备屏幕大小设置为运行时的高度和宽度,如“initWithFrame:CGRectMake(0,0,getdevicewidth(),getdeviceheight())]”然后,我可以使用该高度和宽度自动设置每个UI元素,如lebel或Textview,以适应设备屏幕大小据我所知,SDK中没有任何方法,但您可以在实用程序类i.e+(float)getDeviceHeight{return[[UIScreen mainScreen]bounds].size.height;}中创建自己的方法自动重设密钥在我的情况下不起作用。。。你知道有什么方法可以在运行时将设备屏幕大小设置为运行时的高度和宽度,比如“initWithFrame:CGRectMake(0,0,getdevicewidth(),getdeviceheight())]”,然后我可以使用该高度和宽度自动将每个UI元素(如lebel或Textview)设置为设备屏幕大小“initWithFrame:CGRectMake(0,0,[[UIScreen mainScreen]bounds].size.width,[[UIScreen mainScreen]bounds].size.height]”我补充道,但它从景观中获取纵向屏幕的值,而不是从景观中获取。这可能取决于您在哪里检查它……所有视图都将以纵向创建,然后旋转到横向中……检查“ViewDidDisplay”“任何避免纵向模式的建议..我在plist中做了更改以横向模式显示,但仍然得到纵向值