我想知道如何在iOS4中为UILabel创建文本笔划?我需要一些建议。我想要这样的东西:
已编辑:
UIFont *font = [UIFont fontWithName:@"Arial" size:222];
CGPoint point = CGPointMake(0,0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.7);
CGContextSetRGBStrokeColor(context, 2, 2, 2, 1.0);
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSaveGState(context);
// I change it to my outlet
[label.text drawAtPoint:point withFont:font];
CGContextRestoreGState(context);
答案 0 :(得分:21)
UIFont *font = [UIFont fontWithName:@"Arial" size:14];
CGPoint point = CGPointMake(0,0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.7);
CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0);
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
CGContextSaveGState(context);
[@"Label" drawAtPoint:point withFont:font];
CGContextRestoreGState(context);
你可以看看这里:
答案 1 :(得分:1)
我有一个实现UILabelStroke子类的简洁解决方案:
@implementation UILabelStroked
@synthesize strokeColor;
- (void)drawTextInRect:(CGRect)rect {
UIColor *borderColor = self.strokeColor;
UIColor *fillColor = self.textColor;
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 1.0f);
CGContextSetTextDrawingMode(context, kCGTextStroke);
self.textColor = borderColor;
[super drawTextInRect:rect];
CGContextSetLineWidth(context, 0.0f);
CGContextSetTextDrawingMode(context, kCGTextFillStroke);
self.textColor = fillColor;
[super drawTextInRect:rect];
}
@end