2013-07-21 2 views
1

두 개의 레이블에 단지 NSAttributedString을 넣을 수 있습니까? 예를 들어두 개의 NSAttributedString을 하나의 레이블에 넣으십시오.

: 당신은 함께 두 의한 문자열을 추가하는 중 NSMutableAttributedString를 사용하거나 (소스 문자열 기준) 지정 범위의 특성을 기인 문자열을 구축하고 설정하는

NSString *a = [car valueForKey:@"name"]; 
NSString *b = [car valueForKey:@"version"]; 

NSAttributedString *title; 
    title = [[NSAttributedString alloc] initWithString:a attributes:@{ NSFontAttributeName : [UIFont fontWithName:@"Noteworthy-Bold" size:36], NSUnderlineStyleAttributeName : @1 , NSStrokeColorAttributeName : [UIColor blackColor]}]; //1 

    NSAttributedString *title2; 
    title2 = [[NSAttributedString alloc] initWithString:b attributes:@{ NSFontAttributeName : [UIFont fontWithName:@"Noteworthy-Bold" size:36], NSUnderlineStyleAttributeName : @0 , NSStrokeColorAttributeName : [UIColor blackColor]}]; //2 

    cell.textLabel.attributedText = //what should I write here? 

답변

1

-appendAttributedString : (NSString *) 메서드를 사용하여 하나의 특성 문자열을 다른 문자열에 추가 할 수 있습니다. 귀속 문자열을 모두 변경할 수 있으므로 구분 기호 (세미콜론, 쉼표)를 사용하여 하나의 레이블에있는 두 개의 다른 문자열을 구별 할 수 있습니다. (당신이 당신의 질문에 명시된 것처럼)

NSMutableAttributedString *string1 = [[NSMutableAttributedString alloc] initWithString:@"Hello"]; 
     NSMutableAttributedString *string2 = [[NSMutableAttributedString alloc] initWithString:@"Hello 2"]; 
NSMutableAttributedString *semiStr = [[NSMutableAttributedString alloc] initWithString:@" ; "]; 
[string1 appendAttributedString:semiStr]; //separate string 1 and 2 by semi-colon   
[string1 appendAttributedString:string2]; 

textLabel.text = string1; //which string2 is now appended to 

물론, 당신 기인 문자열에, 당신은 속성을 가질 것 : 여기

은 몇 가지 예제 코드입니다. Apple's documentation on the NSMutableAttributedString class을 신뢰하여 다음에 사용할 적절한 방법을 찾을 수도 있습니다.

+0

하지만 한가지는 작동하지 않습니다 :'[title appendAttributedString : @ ";"];을 설정할 때'NSAttributedString 타입의 매개 변수에 NSString을 보내는 호환되지 않는 포인터 유형' –

+0

... 그리고 그 app 충돌 –

+0

@ user2242550 내 사과 - 그 코드를 잘못 썼습니다. 답변은 적절한 코드를 잠시 반영하도록 편집됩니다. –

0

.

+0

두 문자열을 함께 넣을 수 있습니까? –

+0

소스 문자열은'NSString'이므로'stringWithFormat' 또는'stringByAppendingString'을 사용할 수 있습니다. 많은 옵션이 있습니다. 결과가 무엇인지 말해야합니다. – Wain

관련 문제