Swift를 이용한 iOS에서 커스텀 폰트 사용하기: CTFontManagerRegisterFontsForURL 및 CTFontManagerUnregisterFontsForURL 활용법

2024년 2주차

·

2 min read

iOS 애플리케이션 개발 시, 표준 폰트 외에도 개성 있는 디자인을 위해 커스텀 폰트를 사용하는 것은 매우 흔한 일입니다. 오늘은 Swift를 사용하여 iOS 앱에서 커스텀 폰트를 쉽게 등록하고 사용하는 방법에 대해 알아보겠습니다.

커스텀 폰트 등록하기

iOS에서 커스텀 폰트를 사용하기 위해서는 먼저 폰트 파일을 프로젝트에 추가하고, CTFontManagerRegisterFontsForURL 함수를 사용하여 시스템에 폰트를 등록해야 합니다. 이 과정은 다음과 같습니다.

  1. 폰트 파일 추가: 프로젝트에 .otf 또는 .ttf 형식의 폰트 파일을 추가합니다.

  2. 폰트 등록 코드 작성: Swift에서 CTFontManagerRegisterFontsForURL 함수를 사용하여 폰트를 등록합니다.

예제 코드

아래는 커스텀 폰트를 등록하는 간단한 Swift 코드 예제입니다. 이 코드는 폰트 파일의 URL을 찾고, 해당 URL에서 폰트를 등록하는 과정을 보여줍니다.

let url = Bundle.main.url(forResource: self.fontName, withExtension: "otf")!

var error: Unmanaged<CFError>?

let result = CTFontManagerRegisterFontsForURL(url as CFURL, .process, &error)

if let error = error?.takeUnretainedValue() {
    fatalError("\(error)")
}

이 코드에서는 Bundle.main.url을 사용하여 폰트 파일의 URL을 얻고, CTFontManagerRegisterFontsForURL 함수를 호출하여 시스템에 폰트를 등록합니다. 만약 폰트 등록 과정에서 오류가 발생한다면 앱은 종료 될 것 입니다.

커스텀 폰트 등록 해제하기

폰트를 등록하는 것만큼 중요한 것이 폰트를 필요하지 않을 때 올바르게 등록 해제하는 것입니다. 이는 리소스 관리 측면에서 특히 중요하며, CTFontManagerUnregisterFontsForURL 함수를 사용하여 수행할 수 있습니다. 폰트 등록 해제는 주로 앱의 특정 부분이나 기능이 더 이상 사용되지 않을 때, 또는 앱이 종료될 때 수행합니다.

예제 코드

아래는 커스텀 폰트를 등록 해제하는 Swift 코드 예제입니다. 이 코드는 앞서 등록했던 폰트의 URL을 사용하여 해당 폰트를 시스템에서 등록 해제합니다.

let url = Bundle.main.url(forResource: self.fontName, withExtension: "otf")!

var error: Unmanaged<CFError>?

let result = CTFontManagerUnregisterFontsForURL(url as CFURL, .process, &error)

if let error = error?.takeUnretainedValue() {
    fatalError("\(error)")
}

이 코드는 CTFontManagerUnregisterFontsForURL 함수를 호출하여 폰트를 등록 해제합니다. 이 과정에서 오류가 발생하면 앱은 종료 될 것입니다.

폰트 관리의 중요성

iOS 앱 개발에서 커스텀 폰트를 사용하는 것은 앱의 디자인을 개선하는 훌륭한 방법입니다. 하지만, 폰트를 적절히 관리하는 것도 중요합니다. 폰트를 필요할 때만 등록하고, 더 이상 사용하지 않을 때는 등록 해제하여 리소스를 효율적으로 사용하는 것이 좋습니다.