我想为我的字符串着色并在矩形中绘制,我的代码是
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];
但是相应的字符串没有获得所需的颜色[红色]。是否缺少任何属性?
答案 0 :(得分:1)
你在这里工作两个不同的级别。如果您要使用CGContext函数绘制文本,则设置CGContext 的填充和描边颜色可能。
但是,由于您使用NSAttributedString绘制文本,因此需要将文本的填充和描边颜色设置为属性。
您要查找的属性为NSForegroundColorAttributeName
(文本填充颜色)和NSStrokeColorAttributeName
。
您也不需要设置文本绘图模式。只有在使用CGContext函数绘制文本时,这也是相关的。
要调整NSAttributedString,您需要同时设置NSStrokeColorAttributeName
和NSStrokeWidthAttributeName
。