2015-09-10 40 views
1

我已经为选择一个单元格设置了高亮颜色,它非常简单。但是,当我设置我的UIView的alpha时,它不响应。我试图在视图中放置一个标签并设置alpha,但它也不起作用。有谁知道为什么会发生这种情况?iOS:为UITableViewCell设置所选高亮颜色的Alpha值

这里是我使用的设置高亮颜色代码:

[cell setSelectionStyle:UITableViewCellSelectionStyleDefault]; 

UIView *highlightView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height)]; 
highlightView.backgroundColor = [UIColor clearColor]; 
UILabel *backLabel = [[UILabel alloc] initWithFrame:highlightView.frame]; 
backLabel.backgroundColor = [UIColor blueColor]; 
backLabel.alpha = 0.5f; 
[highlightView addSubview:backLabel]; 
cell.selectedBackgroundView = highlightView; 

我真正想要的是为突出显示的颜色有透明效果。将它设置为像蓝色或红色一样的直线颜色对我的背景图像来说非常激烈。感谢您的任何建议和帮助!

+0

你为什么要添加一个uview到它? YOu可以访问单元格内容视图 –

回答

2

这最终成为了解决方案:

UIView *highlightView = [[UIView alloc] init]; 
highlightView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:1.0 alpha:.5]; 
cell.selectedBackgroundView = highlightView; 

这只是工作时,我不包括:

cell.selectionStyle = UITableViewCellSelectionStyleDefault; 

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

这是奇怪的,因为一切我读过说什么@Michal在他的回答中指出。

2

不要忘了先设置样式! (由于iOS版8):

cell.selectionStyle = UITableViewCellSelectionStyleDefault; 

前的iOS 8,这是要走的路:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
+0

我更新了我的问题,我已经注释掉了,因为当我使用它而不是蓝色时,没有颜色。我正在测试一个iOS 7.1.1设备和iOS 8.4设备btw –

+0

哦,但问题是,你试图有“太复杂”的选择视图。你不会为'selectedBackgroundView'设置'rect',它会为你做并伸展它。这就是为什么你认为没有任何事情发生。它忽略你正在设置的框架和子视图... – Michal

+0

如果你做了[[[UIView alloc] init]',然后将其背景颜色设置为红色,然后将此视图设置为背景视图,则它将全部为红色 - 它自动设置框架。 – Michal

相关问题