细胞背景不透明

时间:2013-05-04 18:10:06

标签: ios objective-c uitableview

搜索了一些帖子,我试图将一些动态生成的单元格的背景设置为透明。

在故事板中,我有一个原型表,在其下面我有一个图像。在故事板中,我将原型表的alpha设置为0.3,以便图像部分可见。它按照需要呈现。

问题是细胞增加了一层额外的颜色,因此图像仍然可见,但稍微少一些(例如,如果alpha为0.6)。实际上,似乎有三层。表格,单元格(使bg稍微变暗)然后在文本周围的每一行内再生一个小矩形(这会使bg变暗)。

我已经编辑了生成像这样的单元格的函数(基于我从本主题的主题中所理解的):

NSString *cellIdentifier = @"ItemCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];

cell.textLabel.text = [self.labels objectAtIndex:indexPath.row]; // gets the text of the cell from an array
cell.textLabel.textColor = [UIColor colorWithRed:0.80 green:0.80 blue:0.80 alpha:1.0];
UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
backView.backgroundColor = [UIColor clearColor];
// I've also trued with  = [UIColor colorWithRed:0. green:0 blue:0 alpha:0.0] 
cell.backgroundView = backView;

问题是我仍然得到了额外的图层。

2 个答案:

答案 0 :(得分:1)

请参阅,我已在代码中的某处进行了更改并尝试使用它。

[tableView setOpaque:NO];

NSString *cellIdentifier = @"ItemCell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
//if cell is already created then reuse it no need to create unnecessarily.
if(cell= nil){//otherwise create new cells.
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle  reuseIdentifier:cellIdentifier];
UIView *backView = [[UIView alloc] initWithFrame:CGRectZero];
backView.backgroundColor = [UIColor clearColor];
cell.backgroundView = backView;

  }

cell.textLabel.text = [self.labels objectAtIndex:indexPath.row]; 
cell.textLabel.textColor = [UIColor colorWithRed:0.80 green:0.80 blue:0.80 alpha:1.0];

我希望它可以帮助你。

答案 1 :(得分:0)

[tableView setOpaque:NO];
[tableView setBackgroundColor:[UIColor clearColor]];