2015-09-10 78 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

相關問題