我将带有背景图像(具有透明部分)的UIView添加到UITableViewCell中。起初一切看起来都很完美,但在取消选择行之后,我的UIView的背景失去了透明度。
第1步
http://img29.imageshack.us/img29/1842/screenshot20110910at409.png
第2步
http://img41.imageshack.us/img41/1842/screenshot20110910at409.png
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
UIView *priceView = [[UIView alloc] init];
priceView.frame = CGRectMake(250, 10, 40, 21);
priceView.backgroundColor = [UIColor colorWithPatternImage:[ UIImage imageNamed:@"priceBG.png" ]];
priceView.opaque = NO;
[priceView.layer setOpaque:NO];
[cell addSubview:priceView];
[priceView release];
return cell;
答案 0 :(得分:0)
使用UIImageView并将其添加到单元格的contentView:
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
UIImageView *priceImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"priceBG.png" ]];
priceImageView.frame = CGRectMake(250, 10, 40, 21);
priceImageView.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:priceImageView];
[priceImageView release];
return cell;
答案 1 :(得分:0)
我不确定我是否回答你的问题,但是设置tableViewCell的背景会检查出细胞的两个属性。
如果您的目的不是为单元格提供背景,那么使用UIImageView并在contentView中将其设置为subView。
看来你的问题是细胞选择风格。在这里检查selectionStyle属性。分配适当的背景视图将帮助您删除蓝色。
以下是课程参考的链接。