0

我只是对按钮、图像视图等需要使用的图像尺寸感到困惑。我想调整所有 iphone 的图像。屏幕高度/宽度和不同 iphone 之间的比例应该是多少。

就像我有一个按钮。我以以下方式创建 -

 UIButton *takePicButton = [UIButton buttonWithType:UIButtonTypeCustom];
takePicButton.frame = CGRectMake(0, SCREEN_HEIGHT-UI_ITEM_HEIGHT, SCREEN_WIDTH, UI_ITEM_HEIGHT);
[takePicButton setBackgroundImage:[UIImage imageNamed:@"take_photo.png"] forState:UIControlStateNormal];
[self.view addSubview:takePicButton];
[takePicButton addTarget:self action:@selector(takePicture:) forControlEvents:UIControlEventTouchUpInside];

对于这个按钮,我需要在 xcode 上添加多大的图像以支持 iPhone 4 - iPhone 7。

提前致谢。

4

6 回答 6

1

以下是关于如何在 iPhone 中设置图像的说明:

•   1x images are for the original iPhone through the 3GS - 'standard' resolution devices (3.5" screens)


•   2x images are for the iPhone 4 and 4S (3.5" Retina screens) and are also used for the iPhone 5, 5s,6,6s,7

•   3x images are for the new iPhone 6+,7+ (5.5" super-Retina [3x] screen)


您必须在Assets.xcassets中保留三种不同类型的图像,并且只需在要显示的位置提供图像名称。它将自动获取相关图像并显示它。

您可以查看附加的屏幕截图。你只需要写“bgImag”,它就会从辅助中获取相关图像。 在此处输入图像描述 关于图像配给,只需为最高分辨率的 iPhone(即 iPhone 6+)创建图像,然后使用iConify获取其余图像资源。

于 2017-02-23T03:51:25.837 回答
0

阅读 1x、2x、3x 指南

在此处输入图像描述

在此处输入图像描述

于 2017-02-23T04:38:25.490 回答
0

我想调整所有 iPhone 的图像。

最简单的方法是使用布局约束。在给定一组适当的约束的情况下,您的代码会尝试执行约束系统会做的事情,但它的灵活性较低,因为它不提供更改几何形状(例如用户旋转设备时)。

屏幕高度/宽度与不同 iphone 之间的比例应该是多少[?]

不同的设备具有不同的纵横比。有很多网站(比如这个)列出了屏幕尺寸。但是,如果可能的话,最好不要对屏幕尺寸做出任何假设。新设备可能会以不同的纵横比引入,甚至单个设备也可能具有不同的屏幕尺寸,具体取决于用户选择使用它的方式——旋转和分屏等因素会影响屏幕空间的大小和形状您的设备开始使用。

对于这个按钮,我需要在 xcode 上添加多大尺寸的图像才能支持 iPhone 4 - iPhone 7 [?]

我们不能说不知道你的UI_ITEM_HEIGHT常数是什么,或者你想要按钮的相对比例是多少,但如果你知道各种屏幕尺寸,你应该能够自己计算出来。您可以使用我在上面链接的参考资料,或者这个参考资料,或者那里的许多其他参考资料之一。

于 2017-02-23T04:07:57.220 回答
0

试试这个,你可以要求两种尺寸。一个是 SCREEN_WIDTH * 2,UI_ITEM_HEIGHT * 2,另一个是 SCREEN_WIDTH * 3,UI_ITEM_HEIGHT * 3。然后将两个尺寸的图片放入您的 Images.xcassets 中,命名为 xxx@2x,xxx@3x。

于 2017-02-23T03:39:05.053 回答
0

你应该简单地使用:

UIImage *imButton = [UIImage imageNamed:@"image.png"];

[YOURBUTTON setImage:imButton forState:UIControlStateNormal];

Xcode 将自动使用带有比例的可用图像,例如:@2x@3x

在我的示例中,您的图像将是:

image.png(20x20 像素),
image@2x.png, (40x40 像素)
image@3x.png, (60x60 像素)

分别。

引用苹果:

图像尺寸和分辨率

iOS 使用坐标系将内容放置在屏幕上。此坐标系基于点的测量值,这些测量值映射到显示中的像素。在标准分辨率屏幕上,一个点(1/72 英寸)等于一个像素。高分辨率屏幕具有更高的像素密度。因为相同数量的物理空间中有更多的像素,所以每个点有更多的像素。因此,高分辨率显示器需要具有更多像素的图像。

参考这里

于 2017-02-23T03:45:03.217 回答
0

伙计们,您可以尝试以下代码:

 if (IS_IPHONE4) {
        imgHeight.constant = 150;
    }
    else if (IS_IPAD) {
        imgHeight.constant = 300;
    }
    else if (IS_IPHONE5) {
        imgHeight.constant = 170;
    }
    else {
        imgHeight.constant = 200;
    } 

谢谢。

于 2018-01-06T04:55:38.390 回答