UFO ET IT

UIFont fontWithName 글꼴 이름

ufoet 2020. 11. 15. 12:08
반응형

UIFont fontWithName 글꼴 이름


UIFont에 대한 특정 글꼴을 원한다고 가정 해보십시오. 그것이 무엇인지 어떻게 알 수 있습니까?

예를 들어이 코드를 사용하려는 경우 :

[someUILabelObject setFont:[UIFont fontWithName:@"American Typewriter" size:18]];

"미국식 타자기"라는 정확한 문구를 어디에서 복사합니까? Xcode에 헤더 파일이 있습니까?

최신 정보

또한 이것이 편리 하다는 것을 알았습니다 .


Debugger 내에서 Quick Win으로 흥미로울 수 있습니다.

(lldb) po [UIFont fontNamesForFamilyName:@"Helvetica Neue"]

(id) $1 = 0x079d8670 <__NSCFArray 0x79d8670>(
HelveticaNeue-Bold,
HelveticaNeue-CondensedBlack,
HelveticaNeue-Medium,
HelveticaNeue,
HelveticaNeue-Light,
HelveticaNeue-CondensedBold,
HelveticaNeue-LightItalic,
HelveticaNeue-UltraLightItalic,
HelveticaNeue-UltraLight,
HelveticaNeue-BoldItalic,
HelveticaNeue-Italic
)

2018 년 11 월-업데이트 " Xcode가 포함 된 사용자 정의 글꼴 "에 대한 새로운 swift-y 참조 -by Chris Ching. 프로젝트에서 사용자 지정 글꼴을 사용하기 위해 모든 누락 된 부분과 결합 된 새로운 방식에 대한 큰 가치 게시이기 때문에 업데이트해야했습니다.


에 대한 문서는 이것에 대해 UIFont매우 명확합니다.

fontNamesForFamilyName:메서드를 사용하여 지정된 글꼴 패밀리에 대한 특정 글꼴 이름을 검색 할 수 있습니다 . ( 참고 : 클래스 방식입니다.)

다음과 같이 성을 얻을 수 있습니다.

NSArray *familyNames = [UIFont familyNames];

시험

NSArray *familyNames = [UIFont familyNames];
[familyNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
    NSLog(@"* %@",obj);
    NSArray *fontNames = [UIFont fontNamesForFamilyName:obj];
    [fontNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
        NSLog(@"--- %@",obj);
    }];
}];

이 문제를 해결하기 위해 라이브러리를 만들었습니다.

https://github.com/Nirma/UIFontComplete

모든 글꼴은 시스템 Font열거 형 으로 표시되며 라이브러리는 읽어보기에서 사용자 지정 글꼴과 함께 사용하는 방법도 자세히 설명합니다.

기본적으로 이것은 :

let font = UIFont(name: "Arial-BoldItalicMT", size: 12.0)

다음 중 하나로 대체됩니다.

let font = UIFont(font: .arialBoldItalicMT, size: 12.0)

아니면 이거:

let myFont = Font.helvetica.of(size: 12.0)

이것이 프로젝트에서 모든 글꼴 이름을 얻는 방법입니다. 그게 다야 ... 코드 3 줄

NSArray *fontFamilies = [UIFont familyNames];

    for (int i=0; i<[fontFamilies count]; i++)
    {
        NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
    }

label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17];

참고 URL : https://stackoverflow.com/questions/11083954/uifont-fontwithname-font-name

반응형