我是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,图像看起来完美而清晰。表视图是分组表视图。你知道它为什么会模糊图像吗?
答案 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中图像模糊的问题)