I have a table view, in which the cells have a label with some attributed text. The text is being set correctly from cellForRowAtIndexPath. The color of the text is being correctly set but the bold attribute is not being displayed until the cell is dequeued.
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
Model *model = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.tag = indexPath.row;
[cell updateContentWithModel:model atIndexPath:indexPath];
return cell;
}
- (void)updateContentWithModel:(Model *)model atIndexPath:(NSIndexPath *)indexPath
{
self.model = model;
[self setTextFromModel];
[self setImageFromModelAtIndexPath:indexPath];
}
- (void) setTextFromModel
{
self.title.text = self.model.header;
self.status.attributedText = [self boldString:self.model.status fontSize:self.status.font.pointSize color:[UIColor redColor]];
}
+(NSMutableAttributedString *)boldString:(NSString *)stringToBold fontSize:(CGFloat)fontSize color:(UIColor *)color
{
NSMutableAttributedString *boldString = [[NSMutableAttributedString alloc] initWithString:stringToBold];
[boldString setAttributes:@{NSForegroundColorAttributeName: color,
NSFontAttributeName:[UIFont boldSystemFontOfSize:fontSize]} range:NSMakeRange(0, boldString.length)];
return boldString;
}
Has anyone experience something like this before?
I have same problem due to UIAppearance. Set font\color to nil before setting UILabel attributed text works for me.