0

文字列に色を付けて四角形に描画したいのですが、私のコードは

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];

しかし、対応する文字列は目的の色 [赤] になりません。不足している属性はありますか?

4

1 に答える 1

1

ここでは、2 つの異なるレベルで作業しています。CGContext 関数を使用してテキストを描画する場合は、CGContext の塗りつぶしと線の色を設定するの適切な場合があります。

ただし、NSAttributedString を使用してテキストを描画しているため、テキストの塗りと線の色を属性として設定する必要があります。

探している属性はNSForegroundColorAttributeName(テキストの塗りつぶしの色) とNSStrokeColorAttributeName.


テキスト描画モードを設定する必要もありません。これも、CGContext 関数を使用してテキストを描画する場合にのみ関連します。

NSAttributedString をストロークするには、 と の両方を設定する必要がありNSStrokeColorAttributeNameますNSStrokeWidthAttributeName

于 2013-12-20T21:56:14.793 に答える