맞춤 글꼴은 기본 대상에 넣지 않으면 반영되지 않습니다.

결론



EmbeddedFramework로 타겟을 나누는 프로젝트에서
맞춤 글꼴을 사용하는 경우
메인 타겟에 폰트 파일을 넣어야 합니다.

메인 이외의 타겟 부하에 파일을 넣고,
해당 대상의 info.plist에 파일을 연결해도
사용할 수 없습니다.

말하고 싶은 것은 이상입니다만, FontBook을 사용한 커스텀 폰트의 도입 방법도 비잊을 위해서 기술합니다.

커스텀 폰트의 도입 방법



이번에는 HiraKakuStdN-W8를 추가합니다.

FontBook에서 필요한 글꼴 파일 가져오기



Xcode에서 사용자 지정 글꼴을 사용하려면 .ttf , .otf 형식의 파일을 Xcode에 포함해야 합니다.
기본적으로 Mac에 들어있는 FontBook를 열고, 목표 HiraKakuStdN-W8은 히라기노 뿔 고의 W8에 해당하므로,
그것을 검색하고 마우스 오른쪽 버튼으로 클릭하면 Finder에서 글꼴 파일의 위치를 ​​확인할 수 있습니다.



FontBook을 통하지 않고 기본적으로 Mac에서 사용할 수있는 글꼴 (예 : BigSur의 경우 여기)/System/Library/Fonts/ 아래에 있어야하므로 여기에 액세스하여 글꼴 파일을 가져와도 OK입니다.

.ttc를 .otf로 변환



transfonter 을 사용했습니다.
업로드하고 변환 후 파일을 다운로드하면됩니다.

새 글꼴을 Xcode에 통합


  • .otf 형식으로 변환 된 글꼴 파일을 기본 대상 아래의 모든 폴더에 저장합니다.
  • Xcode Project > 메인 타겟 선택 > Build Phases > Copy Bundle Resources 에 추가한 .otf 파일이 추가되어 있는지 확인합니다.
  • info.plist의 Fonts provided by application를 추가하여 새로 추가 된 hoge.otf 파일의 파일 이름을 설명합니다.

    StoryBoard, xib에서 사용



    상기까지 문제 없게 되어 있으면 보통으로 사용할 뿐입니다.


    before
    after






    덧붙여서 메인 타겟에 넣지 않으면,
    xib에서 글꼴은 변경되었지만 실제 기계 또는 시뮬레이터에서는 반영되지 않습니다.
    주의를.

    코드에서 사용



    Xcode에서 사용할 수 있는 글꼴은 UIFont.familyNames가 갖고 있으므로 다음 코드에서 print할 수 있습니다.
    for family: String in UIFont.familyNames {
        print(family)
        for names: String in UIFont.fontNames(forFamilyName: family) {
            print("== \(names)")
        }
    }
    
    // 出力(抜粋)
    // Hiragino Sans
    // == HiraginoSans-W3
    // == HiraginoSans-W6
    // == HiraginoSans-W7
    // == HiraKakuStdN-W8
    

    원래 들어 있던 HiraginoSans-W3 , HiraginoSans-W6 , HiraginoSans-W7 이외에HiraKakuStdN-W8 가 추가되었습니다.
    또, 메인 타겟에 폰트 파일이 들어 있지 않은 경우 이쪽도 출력되지 않습니다.

    이 familyName을 사용하여 다음과 같이 코드에서도 설정할 수 있습니다.
    let hirakakuStdW8Font = UIFont(name: "HiraKakuStdN-W8", size: 24)!
    

    결론(재게재)



    EmbeddedFramework로 타겟을 나누는 프로젝트에서
    맞춤 글꼴을 사용하는 경우
    메인 타겟에 폰트 파일을 넣어야 합니다.
  • 좋은 웹페이지 즐겨찾기