Создать текстовый штрих для UILabel iphone - PullRequest
29 голосов
/ 12 января 2011

Мне было интересно, как я могу создать текстовый штрих для UILabel в iOS4?Мне нужно предложение.Я хочу что-то вроде этого:

alt text

РЕДАКТИРОВАНИЕ:

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

Ответы [ 2 ]

21 голосов
/ 12 января 2011
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);

Вы можете посмотреть здесь:

http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_text/dq_text.html

и в примере кода здесь: http://developer.apple.com/library/ios/#samplecode/QuartzDemo/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40007531

1 голос
/ 19 февраля 2015

У меня есть чистое решение, реализующее подкласс 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...