Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 加载不同大小的图像_Ios_Objective C_Uiimage - Fatal编程技术网

Ios 加载不同大小的图像

Ios 加载不同大小的图像,ios,objective-c,uiimage,Ios,Objective C,Uiimage,我的支持文件文件夹中有一张图片,我想用手机的整个宽度。它们是这样的: img.png -> 320x205 img@2x.png -> 750x410 img@3x.png -> 1242x615 UIImage *img = [UIImage imageNamed:@"img"]; 我像这样加载图像: img.png -> 320x205 img@2x.png -> 750x410 img@3x.png -> 1242x615 UIImage *img

我的支持文件文件夹中有一张图片,我想用手机的整个宽度。它们是这样的:

img.png -> 320x205
img@2x.png -> 750x410
img@3x.png -> 1242x615
UIImage *img = [UIImage imageNamed:@"img"];
我像这样加载图像:

img.png -> 320x205
img@2x.png -> 750x410
img@3x.png -> 1242x615
UIImage *img = [UIImage imageNamed:@"img"];
当我记录此图像的大小时,我得到:

NSLog(@"@@@ Width: %f - Height: %f", img.size.width, img.size.height);
@@@ Width: 375.000000 - Height: 205.000000

为什么我的图像与它的文件大小不同?

这里2x和3x表示图像的大小将是原始图像的2英寸和原始图像的3英寸。 您没有该格式的图像大小,因此它将显示这种类型的输出

示例:-如果我的图像1x为:-320*240,则2x将为:-640*480 3x为-960*720 这是放置2倍和3倍图像的正确格式。完成此操作后,日志将显示正确答案

size.width或size.height以点为单位测量,而不是以像素为单位

苹果使用的点可以独立于手机的分辨率来缩放图像

然后,针对不同的手机以不同的比例渲染图像

@1x:原装iPhone

@2x:iPhone4、5、6

@3x:iPhone6Plus

可以通过以下方式获得比例值:

CGFloat scale = [UIScreen mainScreen] scale];

从技术上讲,你的图像显示的是rght值。如果img@2x的大小是750x410,那么img应该是375x205,这是正确的。所以我可能得到的图像大小是错误的。我希望我的图像是整个iphone的宽度。在iPhone5中,我有320dp,刻度是1,对吗?所以它的宽度应该是320px。在iphone6中,我有375dp,刻度是2,所以宽度是750px。我想错了吗?