2011-08-30 65 views
2

我想給我的UILabel添加一點陰影,但它沒有出現。UILabel上的陰影不會出現

companyLabel.textAlignment = UITextAlignmentLeft; 
     companyLabel.font = [UIFont fontWithName:@"Arial" size:13]; 
     companyLabel.adjustsFontSizeToFitWidth = YES; 
     companyLabel.minimumFontSize = 10.0; 
     companyLabel.backgroundColor = [UIColor clearColor]; 
     companyLabel.textColor = [UIColor colorWithRed:103.0/255.0 green:103.0/255.0 blue:103.0/255.0 alpha:1.0]; 
     companyLabel.layer.shadowColor = [[UIColor colorWithRed:241.0/255.0 green:241.0/255.0 blue:241.0/255.0 alpha:1.0] CGColor]; 
     companyLabel.layer.shadowOffset = CGSizeMake(0.0, -1.0); 
     companyLabel.highlightedTextColor = [UIColor whiteColor]; 

回答

21

你沒有設置shadowOpacity,默認爲0.0。您需要將其設置爲其他內容以使陰影顯示出來。但是,現在沒有理由甚至要觸摸CALayer,因爲UILabel有其自己的shadowColorshadowOffset屬性。

companyLabel.shadowColor = [UIColor colorWithRed:241.0/255.0 green:241.0/255.0 blue:241.0/255.0 alpha:1.0]; 
companyLabel.shadowOffset = CGSizeMake(0.0, -1.0); 
+0

是否有可能進一步自定義陰影?我缺少諸如半徑或點差之類的屬性(如在像Photoshop這樣的程序中)。 – bijan

+2

@bijan:不在'UILabel'本身。如果你想添加一個陰影到'CALayer',它支持更多的屬性(比如'shadowRadius')。然而,在該圖層上放置一個陰影將比將其放在標籤上的性能要差一些。 –

+3

*「因爲UILabel具有自己的shadowColor和shadowOffset屬性,所以現在甚至沒有理由甚至可以觸摸CALayer。」* eh?這個陰影適用於文本,而不是視圖。這些是不同的事情。 – mxcl