使用以下代码时:
self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"texture1.png"]];
我的视图的纹理背景设置得很好。但我可以看到,对于视网膜显示器,图像没有正确缩放,它们看起来更像素化,而不是像它们应该的那样丰富的纹理和颜色。我也遇到过这个问题与其他图像有关,当试图制作iphone 5屏幕尺寸逐渐消失的图像时,只会看到它的一部分,其余部分会被切断,即使分辨率很好。知道我在这里缺少什么吗?
编辑:是否与我正在使用的图像的默认dpi有关?
编辑#2:这是一个截图:
另外,有人知道除了http://subtlepatterns.com/之外是否有良好的背景纹理来源吗?
编辑#3:这是我尝试使用ios-linen图案的一个很好的例子
答案 0 :(得分:3)
如果使用@ 2x图像
,首先从图像名称中删除.pngself.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"texture1"]];
请检查图像的高度和宽度以保留显示..
By Apple On devices with high-resolution screens, the imageNamed:, imageWithContentsOfFile:, and initWithContentsOfFile: methods automatically looks for a version of the requested image with the @2x modifier in its name. If it finds one, it loads that image instead. If you do not provide a high-resolution version of a given image, the image object still loads a standard-resolution image (if one exists) and scales it during drawing.
答案 1 :(得分:0)
您应该向initWithPatternImage
添加UIImageView
,而不是使用UIView
。这更好,因为: -
UIImageView
将根据其特定的宽度和高度包含图片。
此外,initWithPatternImage
方法比UIImageView
消耗更多内存。
我更喜欢使用UIImageView
而不是
initWithPatternImage:[UIImage imageNamed:@"texture1.png"]
如果图片仍然不清晰,您可以将 @ 2x图片添加到UIImageView
,您会看到清晰度更高。