我无法在drawRect方法中使用CGContext在黑色视图上绘制一些白色文本。
我做:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 1.0);
CGContextSelectFont(context, "Helvetica", 20, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGPoint center = self.center;
然后......
无法找到正确的方法。
我试过这个:
UIFont* font = [UIFont fontWithName:@"Geneva" size:12.0];
[@"Some text" drawAtPoint:center withFont:font];
但它不起作用。
我没有找到任何CGContext方法。隐藏在哪里?
我如何以白色绘制该文字?
答案 0 :(得分:4)
好几个小时后阅读Quartz 2D编程指南我发现你还必须设置FILL颜色,而不仅仅是STROKE颜色。所以以下代码有效。
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
我需要在darkGray边框上显示图表标签。现在标签显示为白色。
答案 1 :(得分:2)
这将在黑色矩形中以白色绘制一个字符串
NSString *text = @"Some text";
CGPoint center = CGPointMake(100, 200);
UIFont *font = [UIFont systemFontOfSize:14];
CGSize stringSize = [text sizeWithFont:font];
CGRect stringRect = CGRectMake(center.x-stringSize.width/2, center.y-stringSize.height/2, stringSize.width, stringSize.height);
[[UIColor blackColor] set];
CGContextFillRect(context, stringRect);
[[UIColor whiteColor] set];
[text drawInRect:stringRect withFont:font];
答案 2 :(得分:1)
在较短的示例中,请尝试在[[UIColor whiteColor] set]
来电之前使用drawAtPoint:
。
答案 3 :(得分:0)
适用于:
CGContextShowTextAtPoint (context, center.x, center.y, "Some text", strlen("Some text"));
但仍需要显示一些未镜像的转换: - )
答案 4 :(得分:0)
这将适用于此代码:
NSString *text = @"Some text";
UIFont *font = [UIFont systemFontOfSize:14];
[ text drawAtPoint:CGPointMake( 0, 0 ) withAttributes:@{ NSFontAttributeName:font, NSForegroundColorAttributeName : UIColor.redColor } ];