2013-01-11 2 views
1

내 CALayer 텍스트에 광선 효과를 적용하려면 Brad's answer을 따르고 있습니다.CALayer 텍스트 작성법 효과

여기 내 코드입니다 :

- (void)drawLayer:(CALayer *)theLayer inContext:(CGContextRef)context 
{ 
    UIGraphicsPushContext(context); 
    UIFont *font = [UIFont fontWithName:@"Verdana" size:11.0f]; 

    CGRect rect = CGRectMake(theLayer.bounds.origin.x + 5, theLayer.bounds.origin.y + 5, theLayer.bounds.size.width - 10, theLayer.bounds.size.height - 10); 

    NSString * textToWrite = @"Some text";   

    UIColor *color = [ UIColor colorWithRed: (100.0f) green: (50.0) blue:(200.0f) alpha: 1.0f ]; 

    CGContextSetFillColorWithColor(context, color.CGColor); //this has no effect!!! 

    CGContextSetShadowWithColor(context, CGSizeMake(0.0, 0.0), 2.0f, [UIColor greenColor].CGColor); 

    [textToWrite drawInRect:rect withFont:font 
      lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentLeft];  

    UIGraphicsPopContext(); 

}

여기 괜찮은 녹색 빛을 얻고있다. 그러나 나는 그 텍스트가 그 자체의 색깔을 가지기를 원한다. 여기서는 CGContextSetFillColorWithColor과 함께 여기에 색상 변수를 사용하고 있습니다. 하지만 아무런 효과가없는 것 같습니다. 텍스트가 흰색으로 보이고 녹색으로 빛납니다. 나는 main color = color와 glow = green 인 텍스트를 원한다.

어떻게해야합니까?

답변

2

나는 당신의 색깔에 혼란 스럽다. 나는 목표 -c에서 적색 녹색과 청색을 선언 할 때 최대 1.0이되는 값을 설정한다고 생각한다. true 255 hex 값을 255로 나눕니다. 3 개의 값이 최대 값보다 훨씬 위에 있기 때문에 색상이 흰색이어야합니다.이 두 코드를 먼저 시도해도 틀 렸습니다 ...

현재 FillColorWithColor 이와 코드 :

[[UIColor colorWithCGColor:color] set];

(또는 어쩌면이 ...)

[[UIColor colorWithCGColor:color.CGColor] set];

그들은 또한이에 컬러 코드를 변경하는 동안을 시도하십시오 해결되지 않는 경우

UIColor *color = [ UIColor colorWithRed: (100.0f/255.0f) green: (50.0f/255.0f) blue:(200.0f/255.0f) alpha: 1.0f ];

+2

알버트는 색상에 대한 올바른 것입니다. 1.0보다 작게 입력해야합니다. 또한 당신의 녹색은 그 후에 f를 가질 필요가 있습니다. 자기 자신의 가치를 계산할 경우 0의 형식이어야합니다. ### f. – Douglas

+0

확인해 주셔서 감사합니다 :) –

+1

아주 바보 같은 실수! –