1

通过搜索一些帖子,我尝试将一些动态生成的单元格的背景设置为透明但没有成功。

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

问题是单元格添加了额外的颜色层,因此图像仍然可见,但少了一点(例如 alpha 为 0.6)。实际上,它似乎有三层。表格,单元格(使背景变暗一点),然后是文本周围每一行内的另一个小矩形(使背景更暗)。

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

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;

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

4

2 回答 2

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];
于 2013-05-04T18:50:31.877 回答
0
[tableView setOpaque:NO];
[tableView setBackgroundColor:[UIColor clearColor]];
于 2013-05-04T18:15:57.003 回答