UIView背景透明度

时间:2011-09-10 13:22:11

标签: iphone objective-c ios ios4

我将带有背景图像(具有透明部分)的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;

2 个答案:

答案 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的背景会检查出细胞的两个属性。

  1. backgroundView
  2. selectedBackgroundView
  3. 如果您的目的不是为单元格提供背景,那么使用UIImageView并在contentView中将其设置为subView。

    看来你的问题是细胞选择风格。在这里检查selectionStyle属性。分配适当的背景视图将帮助您删除蓝色。

    以下是课程参考的链接。

    http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html