2022. 1. 2. 16:13ㆍDeveloper Basis
프로젝트를 하다 보면, Xcode에 기본으로 있는 폰트 말고도 외부 폰트를 다운받아 사용하고 싶을 때가 있을 거다.
이런 경우, 단순히 프로젝트 파일에 드래그앤드랍 해주는 것 외에도 고려해야 할 추가 사항이 있어 이렇게 별도의 게시글로 정리를 해보고자 한다.
1️⃣ 폰트 파일 iOS 프로젝트에 추가해주기
일단 프로젝트에 폰트 파일을 끌어서 넣어주자.
이때, 중요한 점은 target을 프로젝트에 꼭 설정을 해줘야 한다는 점이다!
(참고로 Xcode의 폰트 파일은 .wotf 파일을 제외한 .ttf .otf 파일은 모두 지원 가능하다고 한다! ^__^)
💡 Copy items if needed가 아래 사진 상으로는 체크가 안되어 있지만,
이렇게 되면 파일이 복사되는 것이 아니라 원본의 레퍼런스를 그대로 참조하게 되어 원본 파일이 변경, 삭제되었을 때 파일을 사용할 수 없게 된다.
-> 파일을 추가할 때는 Copy items if needed 옵션을 체크하는 습관을 들이도록 하자!
2️⃣ 그 다음으로 Info.plist에 폰트 파일을 정의해줘야 한다.
💡 Info.plist → Information Property List → Font provided by application에 폰트 추가
Info.plist 파일은 프로젝트의 내용을 요약해 놓은 파일이기 때문에, 어떤 커스텀 폰트가 사용되는지 정의해줘야 한다.
이때, Value값에는 폰트 파일의 이름을 확장자 이름(.otf 혹은 .ttf)까지 꼭 붙여서 추가해줘야 한다!
3️⃣ Enum형과 UIFont Extension을 정의해서 폰트를 편하게 사용하자!
이 과정을 모두 거치면, 이제 추가한 폰트를 프로젝트에서 아래와 같이 사용할 수 있긴 하다.
label.font = UIFont(name: "NotoSansCJKkr-BOLD", size: 24)
하지만, 이런 코드는 매번 폰트 이름을 쳐줘야한다는 불편함과 위험성을 갖고 있어 비효율적이라고 볼 수 있는데,
이를 해결하기 위해 Enum형과 UIFont의 Extension을 활용한 개선된 코드를 주로 사용하게 된다.
우선, 위 UIFont(name:) 매개변수에 들어가게 될 폰트 이름, 즉 String값을 반복해서 사용하기 위해 해당 문자열을 열거형으로 정의한다.
enum FontName: String {
case notoSansCJKkrBOLD = "NotoSansCJKkr-BOLD"
}
이후 UIFont의 Extension에 클래스 메서드를 정의해서 사용할 수 있도록 만들면 된다!
extension UIFont {
@nonobjc class func notoSansBold(size: CGFloat) -> UIFont {
return UIFont(name: FontName.notoSansCJKkrBOLD.rawValue, size: size)!
}
}
// 이렇게 사용!
label.font = .notoSansBold(size: 24)
'Developer Basis' 카테고리의 다른 글
[GitHub] 깃허브에서 Create a new release를 눌러보자 (0) | 2022.01.08 |
---|---|
[Mac] 맥 터미널 기본 사용법을 배워보자 (0) | 2022.01.07 |
[Xcode] Xcode에서 quick help를 사용해보자 (0) | 2021.12.20 |
[Xcode] 코드에서 이미지와 색상을 보는 방법, ImageLiteral, ColorLiteral (0) | 2021.11.16 |
[Xcode] 코드 스니펫(Code Snippet)을 사용하는 방법 (0) | 2021.11.06 |