Como obter texto em um CATextLayer para ficar claro

Eu fiz umCALayer com uma adiçãoCATextLayer e o texto sai embaçado. Nos documentos, eles falam sobre "antialiasing de sub-pixel", mas isso não significa muito para mim. Alguém tem um trecho de código que cria umCATextLayer com um pouco de texto claro?

Aqui está o texto da documentação da Apple:

Nota: CATextLayer desabilita o antialiasing de sub-pixel ao renderizar texto. O texto só pode ser desenhado usando antialiasing de sub-pixel quando é composto em um plano de fundo opaco existente ao mesmo tempo em que é rasterizado. Não há como desenhar texto com suavização de subpixels por si só, seja em uma imagem ou em uma camada, separadamente antes de ter os pixels de fundo para tecer os pixels de texto. Definir a propriedade de opacidade da camada como YES não altera o modo de renderização.

A segunda frase implica que se pode obter um texto bonito se houvercomposites em umexisting opaque background at the same time that it's rasterized. Isso é ótimo, mas como eu o componho e como você fornece um fundo opaco e como você o rasteriza?

O código que eles usam no exemplo de um menu Kiosk é o seguinte: (É OS X, não iOS, mas presumo que funcione!)

NSInteger i;
for (i=0;i<[names count];i++) {
    CATextLayer *menuItemLayer=[CATextLayer layer];
    menuItemLayer.string=[self.names objectAtIndex:i];
    menuItemLayer.font=@"Lucida-Grande";
    menuItemLayer.fontSize=fontSize;
    menuItemLayer.foregroundColor=whiteColor;
    [menuItemLayer addConstraint:[CAConstraint
         constraintWithAttribute:kCAConstraintMaxY
                      relativeTo:@"superlayer"
                       attribute:kCAConstraintMaxY
                          offset:-(i*height+spacing+initialOffset)]];
    [menuItemLayer addConstraint:[CAConstraint
         constraintWithAttribute:kCAConstraintMidX
                      relativeTo:@"superlayer"
                       attribute:kCAConstraintMidX]];
    [self.menuLayer addSublayer:menuItemLayer];
} // end of for loop 

Obrigado!

Edição: Adicionando o código que eu realmente usei que resultou em texto embaçado. É de uma pergunta relacionada que publiquei sobre como adicionar umUILabel ao invés de umCATextLayer mas obtendo uma caixa preta.http://stackoverflow.com/questions/3818676/adding-a-uilabels-layer-to-a-calayer-and-it-just-shows-black-box

CATextLayer* upperOperator = [[CATextLayer alloc] init];
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGFloat components1[4] = {1.0, 1.0, 1.0, 1.0};
CGColorRef almostWhite = CGColorCreate(space,components1);
CGFloat components2[4] = {0.0, 0.0, 0.0, 1.0};
CGColorRef almostBlack = CGColorCreate(space,components2);
CGColorSpaceRelease(space);
upperOperator.string = [NSString stringWithFormat:@"13"];
upperOperator.bounds = CGRectMake(0, 0, 100, 50);
upperOperator.foregroundColor = almostBlack;
upperOperator.backgroundColor = almostWhite;
upperOperator.position = CGPointMake(50.0, 25.0);
upperOperator.font = @"Helvetica-Bold";
upperOperator.fontSize = 48.0f;
upperOperator.borderColor = [UIColor redColor].CGColor;
upperOperator.borderWidth = 1;
upperOperator.alignmentMode = kCAAlignmentCenter;
[card addSublayer:upperOperator];
[upperOperator release];
CGColorRelease(almostWhite);
CGColorRelease(almostBlack);

EDIÇÃO 2: Veja minha resposta abaixo para saber como isso foi resolvido. sbg.

questionAnswers(7)

yourAnswerToTheQuestion