0

我对 iPhone 4 及以下应用程序如何针对 iPhone 5 进行优化感到非常困惑。我是一名设计师。优化是如何进行的?基本上我有一个带有大量旋钮和按钮以及其他交互式组件的应用程序。在我看来,有 3 个选项,但最好的方法(或最少的标准做法)是什么?

1) 保持 iPhone 5 的布局相同,但只是在背景上增加了额外的长度。

2) 缩放从 iPhone 4 到 iPhone 5 的组件的图像/布局,这样一切都是成比例的。

3)两者都有完全独立的图像和不同的布局。即对于 iPhone 5,我可以移动组件以更多地利用空间。这个问题(我不是开发人员)是组件的交互位置实际上已经移动,iPhone 4 和 5 是单独的应用程序?

4

6 回答 6

1

要识别它是否是 iphone 5 iphone,请在文件中使用以下代码nameYourApp-prefix.pch

//Macro iPhone5
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

在支持文件中找到该nameYourApp-prefix.pch文件,代码必须写在:

# ifdef __ OBJC__

      //Code Macro iPhone5

# endif 

然后只需使用“if”来检查该设备,如下所示:

if (IS_IPHONE_5) {

    //Code for 4 inch screen

}else{

   //Code for 3.5 inch screen

}

将宏放在 中nameYourApp-prefix.pch,所有类都可以看到它。

于 2013-04-11T14:53:29.197 回答
1

使用UIKit 应用程序,您的选择都不是理想的。您只需使用 Springs 和 Struts 或 Auto Layout 即可让您的用户界面元素捕捉到它们应该在的位置。

在纵向和横向之间切换时,解决方案是相同的。您定义哪些用户界面元素可以增长,哪些不能增长,要捕捉到哪些边缘等。

如果您没有 iPhone 5 设备,请在模拟器上运行它以测试布局。

例如,对于 a UITableViewControllerUITableView应该在 iPhone 5 上垂直增长,以便您看到更多行。

我几乎总是至少有一个控件,在给定空间的情况下可以很好地成长。如果你不这样做,那么你可能只会在视图底部有更多的空白空间。

于 2013-04-11T14:56:40.537 回答
0

How iPhone 5 Optimization Works

When you tell iOS that your app is optimized for the iPhone 5 (through use of a cleverly named image file), iOS uses your existing Springs and Struts or Auto Layout (whatever you're using) to rearrange the interface.

于 2013-04-11T14:12:38.283 回答
0

如果您没有,请使用适当的自动调整大小掩码调整您的视图布局,或者如果您只想支持 iOS 6,请查看Auto Layout 。你必须检查高度[[UIScreen mainScreen] bounds]

例子:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
    // code for 4-inch screen (iPhone 5)
} else {
    // code for 3.5-inch screen (< iPhone 5)
}

注意[UIImage imageNamed:@"yourImage.png"]只会加载 "background.png" 或"yourImage@2x.png" ,如果存在则不会加载"yourImage-568h@2x.png" 。

也检查自动旋转 API

于 2013-04-11T14:21:17.317 回答
0

第一个选择是最简单的并且效果很好。您只需要担心全屏图像的特定资产,并确保 NavigationBar 和 TabBar(如果您的应用程序有)分别保持在顶部和底部。

缩放其他图像/组件(例如按钮),您将更改一般纵横比(您可能不希望这样做),因为 iPhone 4 和 5 的显示尺寸仅在高度上有所不同。

于 2013-04-11T14:15:53.670 回答
0

对于开发应用程序选项二更好。尽管您不必更改 iPhone 5 的所有图像,但某些图像会像 TabBarItem 一样。但是您必须为 iPhone4 和 5 创建不同的背景图像。

读出这个苹果文档来创建用户界面。

您可以使用此代码区分 iPhone 4 和 iPhone 5

    UIBtton * btn = [[UIButton alloc] init];
    CGRect screenBounds = [[UIScreen mainScreen] bounds];

            if (screenBounds.size.height == 568)
            {
              btn.frame = CGRectMake(60,60, 205, 175); 
              //this is for iPhone5
            }
            else
            {
              btn.frame = CGRectMake(60,50, 199, 170); 
              //this is for iPhone4
            }

这里我的按钮位置和长度对于 iPhone 5 和 iPhone 4 是不同的

并根据 iPhone 屏幕尺寸设置控件的高度和宽度。

于 2013-04-11T14:16:36.797 回答