Создание эффекта обводки и тени с использованием только 1 подкласса UILabel - PullRequest
0 голосов
/ 06 июля 2011

Я пытаюсь создать подкласс UILabel, который будет выполнять задачу двух отдельных UILabel, которые я сложил друг на друга, используя следующие методы:

Background UILabel:

- (void)drawTextInRect:(CGRect)rect {

CGSize shadowOffset = self.shadowOffset;
//UIColor *textColor = self.textColor;

CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(c, 3);

CGContextSetTextDrawingMode(c, kCGTextStroke);
self.textColor = [UIColor whiteColor];
[super drawTextInRect:rect];

self.alpha = .1;

self.shadowOffset = shadowOffset;

}

Передний план UILabel:

- (void)drawTextInRect:(CGRect)rect {

CGSize shadowOffset = self.shadowOffset;
UIColor *textColor = self.textColor;

CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(c, 2);

CGContextSetTextDrawingMode(c, kCGTextStroke);
self.textColor = [UIColor blackColor];
[super drawTextInRect:rect];


CGContextSetTextDrawingMode(c, kCGTextFill);
self.textColor = textColor;
self.shadowOffset = CGSizeMake(0, 0);
[super drawTextInRect:rect];

self.alpha = .5;

self.shadowOffset = shadowOffset;

}

Есть ли способ выполнить эти 2 набора эффектов, используя только 1 подкласс UILabel?

1 Ответ

1 голос
/ 22 августа 2011

Попробуйте этот код:

UILabel* label = [[UILabel alloc] init];
label.shadowColor = [UIColor grayColor];
label.shadowOffset = CGSizeMake(0,1);
...