2

使用以下代码时:

self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"texture1.png"]];

我的视图的纹理背景设置得很好。但是我可以看到,对于视网膜显示器,图像没有正确缩放,它们看起来更加像素化,而不是应该有丰富的纹理和颜色。我在其他图像上也遇到过这个问题,当尝试使 iphone 5 屏幕大小的图像消失时,即使分辨率很好,也只会看到一部分,其余部分会被切断。知道我在这里缺少什么吗?

编辑:它是否与我正在使用的图像的默认 dpi 有关?

编辑#2:这是一个截图: 在此处输入图像描述

顺便说一句,有谁知道除了http://subtlepatterns.com/之外是否还有好的背景纹理来源?

编辑#3:这是我尝试使用 ios-linen 模式的一个很好的例子 在此处输入图像描述

4

2 回答 2

3

如果您使用@2x 图像,请首先从图像名称中删除 .png

self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"texture1"]];

请检查图像高度和宽度是否保留显示..

由苹果 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.

于 2013-05-24T04:42:31.783 回答
0

而不是使用initWithPatternImage你应该添加一个UIImageViewUIView. 这更好,因为:-

  1. UIImageView根据其特定的宽度和高度包含图像。

  2. 此外,该initWithPatternImage方法UIImageView.

宁愿使用 aUIImageView而不是

initWithPatternImage:[UIImage imageNamed:@"texture1.png"]

如果图像仍然不清晰,您可以将@2x 图像添加到图像中UIImageView,您会看到清晰度更高。

于 2013-05-24T04:43:28.483 回答