选择单元格时,将半透明色调添加到透明UITableViewCell

时间:2015-09-21 17:40:48

标签: ios objective-c uitableview

我设置了一个透明的UITableViewCell,我希望它被设置为阴影,但在选中时仍然不透明。这是我添加到- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath以尝试产生效果的内容:

UIView *bgView = [[UIView alloc] initWithFrame:cell.frame];
bgView.backgroundColor = [UIColor lightGrayColor];
bgView.alpha = .3;
cell.selectedBackgroundView = bgView;

然而,当选择单元格时,这会导致单元格变为不透明的灰色。我怎么能有半透明的灰色?似乎设置alpha没有效果?或者我可以在- (void)tableView:(UITableView *)tableView Cell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath中设置哪些内容来解决此问题?我尝试将此行添加到该函数中,但我仍然有不透明的灰色单元格而不是我设置的低alpha单元格。

cell.selectedBackgroundView.alpha = .3

2 个答案:

答案 0 :(得分:0)

您可以尝试:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

与您的自定义backgroundView结合使用。

答案 1 :(得分:-2)

您应该覆盖UITableViewCell类,并在那里实施setSelectedsetHighlighted方法。你应该在背景中设置颜色或默认颜色。

或者,无论多么丑陋,你可以覆盖willDisplayCell...方法并在那里设置颜色。

不要忘记将单元格选择样式设置为.None