2012-07-30 8 views
2

배열의 모든 범위 색상을 설정하려고하는데이 오류가 발생합니다. 나는 왜 그런지 이해하지 못한다. 범위가 모두 유효합니다. 나는 수동으로 범위를 테스트 해 보았습니다. 고맙습니다.NSMutableAttributedString - NSForegroundColorAttributeName

CGContextSetFillColorWithColor : 유효하지 않은 컨텍스트 0x0으로

NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:tv.text]; 

for (NSString * s in array) { 
     [string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSRangeFromString(s)]; 
} 

CATextLayer *textlayer = [[CATextLayer alloc]init]; 
textlayer.frame = CGRectMake(0, 0, 320, 480); 
[self.view.layer addSublayer:textlayer]; 
textlayer.string = @"aString"; //works 
textlayer.string = string; //does not work 
tv.text = @""; 

답변

9

코드 예제는 빌드하려는 코드와 똑같은 코드입니까? 임 NSForegroundColorAttributeName은 Mac OS X SDK 및 iOS 6.0 이상에서만 사용 가능하므로 예제 코드는 컴파일되지 않아야합니다.

대신 kCTForegroundColorAttributeName을 입력하고 NSColor 대신 CGColorRef을 전달하십시오.

[string addAttribute:(id)kCTForegroundColorAttributeName 
       value:(id)[UIColor redColor].CGColor 
       range:NSRangeFromString(s)]; 

그러나 이것이 실제로 잘못된 컨텍스트 오류의 원인인지 확실하지 않습니다.

+0

오류 : 그것은 선언되지 않은 식별자 "kCTForegroundColorAttributeName"의 사용을 말합니다 ... 프레임 워크 ??? – BDGapps

+0

핵심 텍스트를 잊어 버렸습니다. 감사합니다 – BDGapps

+0

좋은. 따라서 유효하지 않은 컨텍스트 오류가 사라졌습니다. 'NSForegroundColorAttributeNameis'을 사용할 때 컴파일 되었습니까? hmm –

0

귀하의 상황이 아닌 범위 잘못된 것입니다. 색상이없는 무언가의 색을 설정하려고합니다.

+0

이 경우이게 무슨 뜻입니까? 당신은 해결책이 있습니까? – BDGapps

관련 문제