Ios 如何正确设置视网膜的背景?

Ios 如何正确设置视网膜的背景?,ios,uiview,Ios,Uiview,可能这个问题很简单,但我有一个关于setBackgroundColor的bug 我有UIView,其中包含UITableViewUITableView为透明颜色。我正在尝试设置ui视图的背景: [self.viewForTable setBackgroundColor: [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgIngrList.png"]]]; 在普通iPad上,它看起来像: 但在iPad上(就像第二张图片开始显示的那样)

可能这个问题很简单,但我有一个关于setBackgroundColor的bug

我有
UIView
,其中包含
UITableView
<代码>UITableView为透明颜色。我正在尝试设置
ui视图的背景:

[self.viewForTable setBackgroundColor: [UIColor colorWithPatternImage:[UIImage imageNamed:@"bgIngrList.png"]]];
在普通iPad上,它看起来像:

但在iPad上(就像第二张图片开始显示的那样):

我有两张图片“bgingrist.png”和“bgIngrList@2x.png“带有290x260580x520

臭虫在哪里

编辑

我使用
UIImageView
而不是
UIView
解决了这个问题


谢谢大家

colorWithPatternImage:(顾名思义)认为你的图像是要填充的图案。因此,如果你给出的图像小于视图的大小,它将再次绘制图案图像,而不是拉伸它。这就是这里发生的事情。图像的大小小于视图的大小,因此在底部再次绘制图像。您可以通过添加UIImageView并设置image属性而不是设置UIView的backgroundColor来避免这种情况。

对不起,我不清楚第二张图片有什么问题。是背景画得太大了,还是只是视网膜模拟器的大屏幕截图?都是
bgingrist.png
bgIngrList@2x.png
在您的项目中?请看第二幅图像的底部,它看起来像是第二次看到的背景绘制图像…非常奇怪。我不确定到底发生了什么,但我的第一个猜测是,仅仅看一下屏幕截图,另一个视图(带圆角)正在底部区域的顶部绘制。您可以使用
[[UIWindow keyWindow]recursiveDescription]
记录整个视图层次结构。也许试试看有没有可疑的东西出现。啊哈,这是正确的答案。我没有对源图像的大小给予足够的关注,我认为源图像是绿色纹理背景的瓷砖,而不是整个背景的图像。