2011-10-17 79 views
3

如何設置突出顯示的文本的shadowColor?higlighted shadow color

titleLabel.textColor = [UIColor colorWithRed:20.0f/255.0f green:50.0f/255.0f blue:90.0f/255.0f alpha:1.0f]; 
titleLabel.highlightedTextColor = [UIColor whiteColor]; 
titleLabel.shadowColor = [UIColor whiteColor]; 
titleLabel.shadowOffset = CGSizeMake(0, 1.0); 

我在尋找類似:titleLabel.highlightedTextColor.shadowColor = [UIColor blackColor];

回答

1

這應該工作:

if(!yourlabel.highlighed) 
{ 
    [yourLabel setShadowColor:[UIColor greenColor]]; 
} 
else 
{ 
    [yourLabel setShadowColor:[UIColor blueColor]]; 
} 

編輯: 一個UILabel強調一個名爲屬性,是一個BOOL。您可以檢查它是否正確,並在您想要的時候更改陰影顏色。

+0

不,他想要2個不同的陰影一個用於標準狀態,另一個用於高亮顯示 – Nekto

+0

正確編輯。 –

+0

我認爲誰想要做靜態=) – Nekto

0

我有同樣的問題。

我最後做的是在主要的UILabel之下創建第二個UILabel以充當影子。

不要在主要和陰影標籤上設置陰影。對於陰影標籤,將「正常顏色」設置爲您想要的陰影顏色,並將突出顯示的顏色設置爲「清除顏色」。

很明顯,每次更新主標籤時都必須更新陰影標籤。在許多情況下,付出的代價並不是很大。

希望有幫助!

2

我也被蘋果的這種疏忽所困擾,並創建了一個UILabel的子類,它增加了缺少的highlightedShadowColorhighlightedShadowOffset屬性。

默認情況下,它僅禁用突出顯示模式下的陰影,並將偏移設置爲標準偏移的反轉。

@interface FTLabel : UILabel 
@property(nonatomic, strong) UIColor *highlightedShadowColor; 
@property(nonatomic) CGSize highlightedShadowOffset; 
@end 


@interface FTLabel() 
@property(nonatomic, strong) UIColor *savedShadowColor; 
@property(nonatomic) CGSize savedShadowOffset; 
@end 

@implementation FTLabel 

- (id)initWithCoder:(NSCoder *)aDecoder { 
    if ((self = [super initWithCoder:aDecoder])) { 
     [self configure]; 
    } 
    return self; 
} 

- (id)initWithFrame:(CGRect)frame { 
    if ((self = [super initWithFrame:frame])) { 
     [self configure]; 
    } 
    return self; 
} 

- (void)configure { 
    self.highlightedShadowColor = nil; 
    self.highlightedShadowOffset = CGSizeMake(self.shadowOffset.width * (-1), self.shadowOffset.height * (-1)); 

    self.savedShadowColor = self.shadowColor; 
    self.savedShadowOffset = self.shadowOffset; 
} 

- (void)setHighlighted:(BOOL)highlighted { 
    [super setHighlighted:highlighted]; 

    self.shadowColor = self.highlighted ? self.highlightedShadowColor : self.savedShadowColor; 
    self.shadowOffset = self.highlighted ? self.highlightedShadowOffset : self.savedShadowOffset; 
} 

@end