azhy의 iOS 이야기

[iOS] Font 추가하기 본문

iOS

[iOS] Font 추가하기

azhy 2024. 11. 11. 21:12

2022년 6월 22일에 작성됨

 

원하는 Font 검색해서 다운하기


저는 눈누 라는 페이지를 자주 사용합니다. 원하는 폰트를 다운해 주세요!

 

TTF vs OTF

폰트에는 TTF와 OTF 두 개의 파일이 있습니다.

TTF는 포맷방식이 TrueType Font이고 문서 작업이나 디자인 작업에 적합한 대신 용량이 크고 OTF는 포맷방식이 OpenType Font 이고 고해상도 출력 작업에 용이하고 용량이 적습니다.

말고도 많은 차이점이 있지만 사실 TTF나 OTF는 작업 장식, 속도, 파일 크기 등 모든 것이 상대적이기 때문에 일반적인 작업을 하는 경우에는 큰 차이가 없다고 합니다. 차이가 나더라도 엄청 미세한 차이라고 하네요.

고해상도 대형 출력 작업 (300 dpi 이상)을 한다면 OTF를 권장하고 나머지는 아무거나 사용해도 상관없을 듯합니다.

 

TTF 보다 OTF 가 조금 더 선명하다고 하니 선택권이 주어진다면 OTF로 받는 게 좋아 보인다!

 

프로젝트에 다운로드한 Font 파일 추가


추가하실 때 타겟 꼭 설정해주셔야 합니다!


저는 강원교육체를 다운로드하여 추가했습니다.

info.plist 변경

 

information Property List -> Fonts provided by application 추가 -> item에 확장자를 포함한 파일명을 작성

Font 변경

private lazy var mainTextSubLabel: UILabel = {
    let label = UILabel()
    label.translatesAutoresizingMaskIntoConstraints = false
    label.text = "우리가 만난지"
    label.font = UIFont(name: "GangwonEduAllLight", size: 25)
    label.textColor = .white
    return label
}()

 

extension으로 빼서 사용하든 본인이 편한 방법으로 사용하시면 될 거 같습니다. 간단하게는 요렇게 작성하면 정상적으로 font가 바뀌는 모습을 볼 수 있습니다.

Text("(-\(pricePercentage())%)")
    .fontWeight(.medium)
    .font(.custom("IBMPlexSansKR-Regular", size: 12))
    .foregroundColor(.blue)

 

SwiftUI는 이렇게 사용

 

혹시 모든 과정을 똑같이 따라 했는데 정상적으로 폰트가 변경되지 않는다?

아마 폰트 파일이 가진 고유한 이름과 세팅한 이름이 달라서 폰트가 출력이 안될 가능성이 있습니다. 사실 저도 처음에는 폰트가 출력이 안 돼서 구글링을 통해 해결방법을 찾았습니다.

for fontFamily in UIFont.familyNames {
    for fontName in UIFont.fontNames(forFamilyName: fontFamily) {
        print(fontName)
    }
}

 

이 코드를 실행하면


이렇게 쭉 Font 파일 이름들이 출력되는데 잘 찾아보시면 본인이 추가한 폰트 파일의 이름이 보일 겁니다.

저의 경우에는 GangwonEduAllLight, GangwonEduAllBold 가 파일의 이름이었습니다. 본인의 파일 이름을 찾으셨다면 파일이름을 변경하시고 info.plist를 수정해 주시면 아마 정상적으로 출력될 겁니다!