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