我在tableview單元格上使用了一個標籤。該單元格已被分配一個屬性字符串,但問題是,在選擇時,單元格文本不會因屬性字符串變成白色。使用NSAttributedString爲UILabel設置突出顯示的文本顏色。
有什麼辦法解決它..?
任何幫助表示讚賞。
這是看我的代碼。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
LHSearchViewCell *cell = [LHSearchViewCell cellForTableView:tableView fromNib:_cellNib];
cell.selectionStyle = UITableViewCellSelectionStyleGray;
cell.headerLabel.textColor = [UIColor darkGrayColor];
cell.headerLabel.highlightedTextColor = [UIColor whiteColor];
cell.headerLabel.font = [UIFont systemFontOfSize:14];
cell.subLabel.font = [UIFont systemFontOfSize:12];
cell.subLabel.textColor = [UIColor darkGrayColor];
cell.subLabel.numberOfLines = 2;
switch (indexPath.section) {
case 0:
{
UIFont *font = [UIFont systemFontOfSize:14.0];
NSDictionary *firstAttributes = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,[UIColor darkGrayColor],NSForegroundColorAttributeName,nil];
UIFont *secondFont = [UIFont systemFontOfSize:10.0];
NSDictionary *secondAttributes = [NSDictionary dictionaryWithObjectsAndKeys:secondFont,NSFontAttributeName,[UIColor lightGrayColor],NSForegroundColorAttributeName,nil];
NSString* completeString = [NSString stringWithFormat:@"%@ | %@",[_libraryPdfArray objectAtIndex:indexPath.row],[_libraryPdfDateArray objectAtIndex:indexPath.row]];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:completeString];
[attributedString setAttributes:firstAttributes range:[completeString rangeOfString:[_libraryPdfArray objectAtIndex:indexPath.row]]];
[attributedString setAttributes:secondAttributes range:[completeString rangeOfString:[_libraryPdfDateArray objectAtIndex:indexPath.row]]];
cell.headerLabel.attributedText = attributedString;
cell.subLabel.text = [_libraryPdfSubtitleArray objectAtIndex:indexPath.row];
}
break;
case 1:
{
UIFont *font = [UIFont systemFontOfSize:14.0];
NSDictionary *firstAttributes = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,[UIColor darkGrayColor],NSForegroundColorAttributeName,nil];
NSString* completeString = [NSString stringWithFormat:@"%@ | %@",[_ebriefingPdfArray objectAtIndex:indexPath.row],[_ebriefingSecondLabelTextArray objectAtIndex:indexPath.row]];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:completeString];
[attributedString setAttributes:firstAttributes range:[completeString rangeOfString:[_ebriefingPdfArray objectAtIndex:indexPath.row]]];
[attributedString setAttributes:firstAttributes range:[completeString rangeOfString:[_ebriefingSubtitleArray objectAtIndex:indexPath.row]]];
cell.headerLabel.attributedText = attributedString;
cell.subLabel.text = [_ebriefingSubtitleArray objectAtIndex:indexPath.row];
}
break;
default:
break;
}
return cell;
}
下載它,請添加對你爲什麼投下來的註釋。 –
我的猜測是,如果你向我們展示你迄今爲止所做的事情,你將不會得到反對票。 –
@AnkitSrivastava看到我從這個鏈接的答案http://stackoverflow.com/questions/14068962/how-to-use-multiple-font-stylings-on-a-single-string-inside-a-label/14068992#14068992 :) –