如何处理不同设备上的图像大小

时间:2016-08-12 08:25:01

标签: ios objective-c image-processing uiimageview uiimage

目前,我正在做这种类型的观点,这是什么最好的方式,所以我可以管理不同规模的图像

this one

我们有这个尺码,

Device          Points    Pixels     Scale  Physical Pixels   Physical PPI  Size
iPhone 6 Plus   736x414   2208x1242  3x     1920x1080         401           5.5"
iPhone 6        667x375   1334x750   2x     1334x750          326           4.7"
iPhone 5        568x320   1136x640   2x     1136x640          326           4.0"
iPhone 4        480x320   960x640    2x     960x640           326           3.5"
iPhone 3GS      480x320   480x320    1x     480x320           163           3.5"

我的问题是来自服务器的图像我想在Apple的所有类型的设备中处理此图像,我在单元格中使用纵横比,当我使用640 * 106尺寸然后在我-phone 6plus此图像显示的尺寸不正确

这是我的代码

CGRect frameIphone = (flag) ? CGRectMake(0, 0, self.view.frame.size.width, 106):CGRectMake(0, 0, self.view.frame.size.width, 106);

UIImageView *img = [[UIImageView alloc] initWithFrame:(iPad) ? CGRectMake(10,8,55,55) : frameIphone];
img.tag = indexPath.section;
img.contentMode = UIViewContentModeScaleAspectFit;
img.layer.masksToBounds = YES;

[img sd_setImageWithURL:[NSURL URLWithString:[objClass getImageForBackground]] placeholderImage:nil];   // URL Images 

1 个答案:

答案 0 :(得分:2)

真的不是那么难,因为你所做的是固定视图的宽度/高度,你需要做的是根据屏幕比例计算并给它正确的高度,因为宽度是根据屏幕宽度固定的例如,如果屏幕是iphone 6plus,其点为delete,图像为736x414,则执行计算640x106(屏幕宽度*图像高度/图像宽度,随之改变变量)= 125,这就是你应该使用的imageView高度,而不是106直接

您可以先将图像设置为图像视图,然后将其配置框也可以,这样就可以获得图像高度/宽度