두 개의 다른 글꼴 크기를 가진 NSAttributedString의 예?


80

NSAttributedString 나에게는 정말 뚫을 수 없습니다.

UILabel다른 크기의 텍스트를 가지도록 a를 설정 하고 싶습니다. 수집 NSAttributedString은 갈 길이지만 이것에 대한 문서로는 아무데도 얻을 수 없습니다.

누군가가 구체적인 예를 들어 나를 도울 수 있다면 그것을 좋아할 것입니다.

예를 들어 내가 원하는 텍스트가 다음과 같다고 가정 해 보겠습니다.

(in small letters:) "Presenting The Great..."
(in huge letters:) "HULK HOGAN!"

누군가 그 방법을 보여줄 수 있습니까? 아니면 내가 스스로 배울 수있는 단순하고 평범한 참조? 나는 문서와 Stack Overflow의 다른 예제를 통해 이것을 이해하려고 노력했지만 이해하지 못했습니다.

답변:


163

당신은 이렇게 할 것입니다 ...

NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Presenting the great... Hulk Hogan!"];
[hogan addAttribute:NSFontAttributeName
              value:[UIFont systemFontOfSize:20.0]
              range:NSMakeRange(24, 11)];

20 포인트 텍스트의 마지막 두 단어를 설정합니다. 나머지 문자열은 기본값 (내가 생각하는 12 포인트)을 사용합니다. 텍스트 크기 설정에 대해 혼란 스러울 수있는 점은 서체 크기를 동시에 설정해야한다는 것 UIFont입니다. 각 개체는 두 속성을 모두 캡슐화합니다.


SWIFT 범위에 대한 답변을 확인하십시오. stackoverflow.com/a/27041376/1736679
Efren

20

Swift 3 솔루션

또한 appendObjC 또는 Swift에서 인덱스를 지정하는 대신 함수를 사용할 수 있습니다 .

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                           attributes: [ NSFontAttributeName: UIFont.systemFont(ofSize: 20) ])

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                            attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 40) ]))

13

Swift 4 솔루션 :

let attrString = NSMutableAttributedString(string: "Presenting The Great...",
                                       attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 18)]);

attrString.append(NSMutableAttributedString(string: "HULK HOGAN!",
                                        attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 36)]));

-1

쉬운 방법으로하고 싶다면 NSAttributedString에 카테고리를 제공하는 OHAttributedLabel 이라는 git repo가 있습니다. 다음과 같은 작업을 수행 할 수 있습니다.

NSMutableAttributedString *mystring = [[NSMutableAttributedString alloc] initWithString:@"My String"];
[mystring setTextColor:[UIColor colorWithRGB:78 green:111 blue:32 alpha:1]];
mystring.font = [UIFont systemFontOfSize:14];

타사 라이브러리를 사용하지 않으려면 이 링크 에서 속성 문자열을 시작하는 방법에 대한 적절한 자습서를 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.