NSString drawInRect有2种不同的字体样式

时间:2017-12-08 03:10:45

标签: ios objective-c

我有来自服务器的以下文本。我需要在从设备发送到打印机之前根据结果更改字体样式。

1。 司机 Id#123445 验证

2。 司机 Id#123445 的 UNVERIFIED

如果文本有UNVERIFIED我需要加粗未经验证的文本部分。

我目前正在关注创建图片

   CGRect text10Rect = CGRectMake(DateTextRect.origin.x, CGRectGetMaxY(DateTextRect) + 40, DateTextRect.size.width, CGRectGetHeight(frame) - CGRectGetMaxY(DateTextRect) + 20 - 10);
        [strokeColor setFill];
 [stringFromServer drawInRect: text10Rect withFont: smallFont lineBreakMode: NSLineBreakByWordWrapping alignment: NSTextAlignmentLeft];

我在考虑检查它是否UNVERIFIED然后应用bold字体。但无法想出这样做的好方法。

1 个答案:

答案 0 :(得分:0)

我最终做了以下方法。

if([stringFromServer containsString:@"UNVERIFIED"]){
            stringFromServer = [firstBlock stringByReplacingOccurrencesOfString:@"UNVERIFIED" withString:@""];

            CGRect text10Rect = CGRectMake(DateTextRect.origin.x, CGRectGetMaxY(DateTextRect) + 40, DateTextRect.size.width, CGRectGetHeight(frame) - CGRectGetMaxY(DateTextRect) + 20 - 10);
            [strokeColor setFill];
            [stringFromServer drawInRect: text10Rect withFont: smallFont lineBreakMode: NSLineBreakByWordWrapping alignment: NSTextAlignmentLeft];

            CGRect text11Rect = CGRectMake(DateTextRect.origin.x, CGRectGetMaxY(DateTextRect) + 130, DateTextRect.size.width, CGRectGetHeight(frame) - CGRectGetMaxY(DateTextRect) + 20 - 10);
            [strokeColor setFill];
            [@"UNVERIFIED" drawInRect: text11Rect withFont: smallFontBold lineBreakMode: NSLineBreakByWordWrapping alignment: NSTextAlignmentLeft];

        }else{
            CGRect text10Rect = CGRectMake(DateTextRect.origin.x, CGRectGetMaxY(DateTextRect) + 40, DateTextRect.size.width, CGRectGetHeight(frame) - CGRectGetMaxY(DateTextRect) + 20 - 10);
            [strokeColor setFill];
            [stringFromServer drawInRect: text10Rect withFont: smallFont lineBreakMode: NSLineBreakByWordWrapping alignment: NSTextAlignmentLeft];
        }