我使用以下方法在 UIView 上设置了图案背景:
myView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundImage.png"]];
但是图像似乎被拉伸或放大,并且没有以所需的分辨率显示。有没有办法设置背景图案的大小或比例?或者是用作默认值的图像大小。图像 DPI 有影响吗?
我使用以下方法在 UIView 上设置了图案背景:
myView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundImage.png"]];
但是图像似乎被拉伸或放大,并且没有以所需的分辨率显示。有没有办法设置背景图案的大小或比例?或者是用作默认值的图像大小。图像 DPI 有影响吗?
通过平铺图像直到填充给定区域来构造图案。因此,除了原始图像尺寸之外,无法控制平铺尺寸。
现在,如果你想提供视网膜图像,你应该只需要一个@2x
版本,iOS 会自动处理(顺便说一句,将方法调用更改为[UIImage imageNamed:@"backgroundImage"]
- 文件扩展名对于 png 图像是可选的)。
不要为视网膜提供更高 dpi 的图像,而是提供两倍于非视网膜大小的图像(显然不是通过对图像进行过采样)。
最后,您似乎对模式拥有的唯一控制(至少是唯一记录在案的)是阶段。以下是官方文档中的相关部分:
默认情况下,返回颜色的相位为 0,这会导致图像的左上角与绘图原点对齐。要更改相位,请将颜色设为当前颜色,然后使用 CGContextSetPatternPhase 函数更改相位。
原来我没有使用@2x 命名约定,所以图像看起来被拉伸了。我添加了它,它修复了所有问题。