使用CoreGraphics的ios 7 NSString drawInRect

时间:2013-12-20 06:09:08

标签: ios7 nsstring core-graphics cgcontext cgcontextref

我想为我的字符串着色并在矩形中绘制,我的代码是

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSetRGBStrokeColor(context,  210.0/255.0f, 0.0f, 0.0f, 1.0f);
CGContextSetRGBFillColor(context, 192.0/255.0, 0.0/255.0 , 13.0/255.0, 1.0);    

UIFont *font = [UIFont @"MyriadPro-Regular" size:20.0];
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
/// Set line break mode
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
/// Set text alignment
paragraphStyle.alignment = NSTextAlignmentCenter;
NSDictionary *attributes = @{NSFontAttributeName:font,
                                 NSParagraphStyleAttributeName:paragraphStyle};

NSString *string = @"My code";

[string drawInRect:(isPad)?CGRectMake(1.0, 400.0, 270.0, 120.0):CGRectMake(1.0, 150.0, 125, 120) withAttributes:attributes];

但是相应的字符串没有获得所需的颜色[红色]。是否缺少任何属性?

1 个答案:

答案 0 :(得分:1)

你在这里工作两个不同的级别。如果您要使用CGContext函数绘制文本,则设置CGContext 的填充和描边颜色可能

但是,由于您使用NSAttributedString绘制文本,因此需要将文本的填充和描边颜色设置为属性。

您要查找的属性为NSForegroundColorAttributeName(文本填充颜色)和NSStrokeColorAttributeName


您也不需要设置文本绘图模式。只有在使用CGContext函数绘制文本时,这也是相关的。

要调整NSAttributedString,您需要同时设置NSStrokeColorAttributeNameNSStrokeWidthAttributeName