[英]How can I change a UITableViewCell text color in it's highlighted state?
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
if (selected) {
companyLabel.textColor = [UIColor whiteColor];
priceLabel.textColor = [UIColor whiteColor];
changeLabel.textColor = [UIColor whiteColor];
symbolLabel.textColor = [UIColor whiteColor];
}
else
{
companyLabel.textColor = [UIColor blackColor];
priceLabel.textColor = [UIColor blackColor];
symbolLabel.textColor = [UIColor blackColor];
if([changeLabel.text doubleValue] < 0)
{
changeLabel.textColor = [UIColor colorWithRed:239.0/255.0 green:16.0/255.0 blue:52.0/255.0 alpha:1.0];
}
else if([changeLabel.text doubleValue] > 0)
{
changeLabel.textColor = [UIColor colorWithRed:77.0/255.0 green:161.0/255.0 blue:0.0 alpha:1.0];
}
}
}
直到下一個視圖被推入導航堆棧之后,我的文本才會變為白色。
我希望它變成白色,即使用戶點擊+持有一個單元格。
UILabel
有一個highlightedTextColor
屬性。 當像UITableViewCell
這樣的視圖進入其突出顯示狀態時,所有子視圖(包括您的標簽)都應自動更改為使用其突出顯示的屬性。 如果它仍然無法正常工作,那么還有一個用於禁用該功能的字段,您可能需要檢查該功能。
您不希望在任何tableview委托方法中執行此操作。 您必須將突出顯示的文本顏色設置為給定的UILabel
[myLabel setHighlightedTextColor:[UIColor whiteColor]];
這會奏效。 你也不想處理甚至沒有突出的狀態。
干杯!
我將使用UITableViewDelegate方法來實現這一目標。 UILabel可以設置顏色,所以為什么不使用didSelectRowAtIndex和didDeselectRowAtIndex。 在didSelectRowAtIndex中,將標簽設置為所需的顏色,然后在didDeselectRowAtIndex中將標簽設置回黑色。
您可以用UIButton替換標簽並對touchDown事件進行操作嗎?
Button仍然具有titleLabel屬性,因此它可以顯示文本,並且您將能夠更輕松地操作觸摸。 雖然我看不到你的代碼,所以我不知道你對這些標簽做了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.