假设我有一个UIView
,只有一个图像位于UIView
的顶部,我为图像提供了图像资源
显然,不同设备的图像宽度和高度都会增加,所以问题是我如何处理自动布局,我应该将宽度和高度约束设置为大于或等于或者是什么?还有我如何处理图像本身的定位?最后我注意到IOS模拟器总是为不同的设备使用相同的图像,这是我的错误还是问题?
答案 0 :(得分:2)
您需要了解点与像素之间的差异。我们在界面构建器中设计视图而不是像素而是点。
<强> 1。对于正常屏幕(非视网膜)点=像素。
因此,如果我们在界面构建器中将图像视图的高度和宽度设置为50 * 50并加载50 x 50像素的图像,如果我们在50 * 50图像视图中加载100 x 100像素的图像,它将恰好适合它会重新缩放图像,并可能出现一些压缩失真。
<强> 2。视网膜显示点= 2像素。
因此,对于50 * 50图像视图,您需要加载100 * 100像素的图像。它看起来更清晰,不会出现压缩失真。
第3。对于6+点= 3像素。
因此,对于50 * 50图像视图,您需要加载150 * 150图像。
如您所设想的那样,imageview不会在6+中重新缩放到150 * 150。它将是50 * 50,但包含150 * 150像素图像,这将导致超清晰显示。
答案 1 :(得分:0)
首先观看简介:来自WWDC2014 https://developer.apple.com/videos/wwdc/2014/的界面构建器中的新功能,并查看针对不同屏幕尺寸设计不同的用户界面 - 大,小,默认。
在界面构建器中,您应该使用最小的约束 - 50x50并使用正确的图像名称。然后只需添加带有@ 2x @ 3x前缀的其他图像,系统将根据您使用的设备使用它们。
答案 2 :(得分:0)
屏幕上UI图像的实际宽度/高度以点而非像素定义。提供图像源,@ 2x,@ 3x等,这样对于更高分辨率的屏幕,您可以提供所需的额外像素精度。例如1x1pt在所有屏幕上都是相同的,但显示高质量图像所需的像素为1x1 @ 1x,2x2 @ 2x和3x3 @ 3x。
因此,请以宽度和高度定义您的布局,以磅为单位。除了为实际设备的不同分辨率提供版本之外,您不需要担心原始图像像素。
您需要担心的主要问题是在屏幕上缩放时图像的外观。通过设置点的宽度和高度以匹配@ 1x图像的像素宽度和高度来实现完美的图像。这样你知道什么时候它使用@ 2x和@ 3x你在屏幕上完美像素。如果点宽度和高度大于或小于原始图像分辨率,则会导致缩放或缩小图像,这会对图像的清晰度产生一些影响。