将iPad应用程序转换为iPhone应用程序

将iPad应用程序转换为iPhone应用程序

问题描述:

我目前正在研究iPad特定的应用程序。 因为我没有使用接口构建器,所以每个视图元素都使用CGRectMake以及它的位置和大小的特定数字。将iPad应用程序转换为iPhone应用程序

所以我想知道, 如果我在iPhone上使用相同的确切代码,这些数字是否相应缩放? 还是应该重新插入所有视图元素的数字? 如果是后一种情况,有没有简单的方法可以改变它?

CGRect坐标是绝对的,所以你的子视图不会自动缩小到iPhone。如果您在iPhone上运行代码,则只会看到iPad布局的左上角。

您可以非常轻松地编写一个帮助器方法,以获取原始CGRect值并将其缩小为iPhone布局。但是,如果您还在绘制文本,则还需要缩小字体大小(这可能不起作用,因此您仍然需要以非自动方式处理文本)。

我现在正在做基本相同的事情,编写一个在iPad和iPhone上运行的单个应用程序,并将其自身的代码扩展到可用维度。我通常将视图布局设置为可用屏幕大小的浮点比例,然后在渲染之前将这些比例转换为CGRect

关于不按照方式使用Interface Builder的荣誉--IB可能是我在编程世界中见过的最荒谬的暴行(甚至比传统的ASP还要糟糕)。

您必须更改您的iPhone应用程序的号码。 CGRectMake使用的点数是像素,并且不会缩放,除了像iPhone 4这样的高清设备。

老实说,iPad是如此不同的设备,您的用户界面可能需要大量修改以充分利用额外的屏幕空间。

+0

所以他们做iPhone 4和iPod touch的规模?因为这些是我需要将我的应用程序转换为的设备... – CosmicRabbitMediaInc 2011-03-25 12:57:58

+0

不是iPod touch。它仍然有一个“低清晰度”屏幕。目前唯一一款拥有高清屏幕的设备是iPhone 4.即便如此,它并没有像你所说的那样扩展。您可能需要阅读[Retina Display](http://globalmoxie.com/blog/designing-for-iphone4-retina-display.shtml)。 – FreeAsInBeer 2011-03-25 13:01:19