如何制作半透明的UITableViewCells?

时间:2010-12-05 20:35:13

标签: iphone uitableview transparent

我希望将图像添加到单元格背景中,从半透明单元格中我可以看到tableview的背景。

从以下主题,我知道如何制作透明单元格。

UITableViewCell transparent background (including imageView/accessoryView)

我已经尝试过,它确实有效。但是当我添加以下代码时:

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
backView.backgroundColor = [UIColor colorWithRed:.1 green:.1 blue:.1 alpha: .4];
cell.backgroundView = backView;

如果我按如下方式更改代码,则单元格变为灰色而没有任何透明度

UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
backView.backgroundColor = [UIColor clearColor];
cell.backgroundView = backView;

细胞变白,仍然没有任何透明度。

有人可以给我任何线索吗?

3 个答案:

答案 0 :(得分:2)

要制作半透明的UITableViewCells半透明,您必须使UITableViewCells透明,然后将单元格的backgroundView设置为具有半透明属性的图像。同时将单元格的selectedBackgroundView设置为半透明的图像,并提供选定单元格的效果。

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
backView.backgroundColor = [UIColor clearColor];
cell.text.backroundColor = [UIColor clearColor]; //if you have labels on cells..
cell.backgroundView = backView;

然后在透明细胞上设置半透明效果图像。

UIImageView *cellImage = [[UIImageView alloc] init];
[cellImage setImage:[UIImage imageNamed: @"unselectedCellImage.png"]];
[cell setBackgroundView:cellImage];
[cellImage release];

然后为所选单元格设置图像以在选择后提供半透明效果..

UIImageView *cellImageSelection = [[UIImageView alloc] init];
[cellImageSelection setImage:[UIImage imageNamed: @"selectedCellImage.png"]];
[cell setSelectedBackgroundView:cellImageSelection];
[cellImageSelection release];

它会工作.. 干杯..

答案 1 :(得分:1)

你可以尝试这个

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
backView.backgroundColor = [UIColor colorWithRed:255 green:255 blue:255 alpha: .2];
cell.backgroundView = backView;

你做错了是你选择.1 .1 .1这是黑色你需要255 255 255白色你的不透明度非常高,所以它看起来是灰色的,实际上它是黑色的不透明度。希望这会有所帮助:)

答案 2 :(得分:0)

默认情况下,视图被初始化为opaque,因此您可能需要显式设置backView.opaque = NO;,以便以任何透明度进行绘制。