为什么UITableViewCell backgroundView会模糊图像

时间:2010-02-04 03:43:24

标签: iphone uitableview

我是UITableViewCell的子类,在init函数中我正在执行以下操作:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"packagelistcell_background.png"]];
[imageView setFrame:CGRectMake(0, 0, 300, 81)];
self.backgroundView = imageView;
[imageView release];

当屏幕上显示该图像时,图像会略微模糊。为了测试,我在表格视图上方放置了一个直的UIImageView,图像看起来完美而清晰。表视图是分组表视图。你知道它为什么会模糊图像吗?

3 个答案:

答案 0 :(得分:1)

我认为单元格已经调整大小,backgroundView也是如此。

尝试

imageView.autoresizingMask = UIViewAutoresizingNone;

答案 1 :(得分:0)

尝试将imageView移动0.5像素。

答案 2 :(得分:0)

不幸的是,@ freytag的解决方案对我不起作用。

要解决这个问题,我必须将UIImageView添加到UIView容器中,并将其设置为我的自定义单元格的背景视图,而不是直接设置UIImageView:

UIImageView *imgView = [[UIImageView alloc] initWithImage:@"cellBackground.png"];
UIView *backgrContainer  = [[UIView alloc] initWithFrame:self.backgroundView.frame];
[backgrContainer addSubview:imgView];
[self setBackgroundView:backgrContainer];// instead of  [self setBackgroundView:imgView];
[backgrContainer release];
[imgView release];

由于某种原因直接设置UIImageView使其模糊(即使没有调整大小的ocurrs)。设置autoresizingMask = None或contentMode<> UIImageView的ScaleToFill无法解决我的问题。

还要注意UITableView样式,因为使用分组样式会减少单元格背景视图的宽度,这也可以调整图像大小。

(Retina设备/模拟器似乎没有关于细胞backgroundVIew中图像模糊的问题)