[swift] Swift FontBlaster를 사용하여 앱의 사용자 설정에 맞는 폰트를 적용하는 방법은?

다음은 Swift FontBlaster를 사용하여 앱에서 사용자 설정에 맞는 폰트를 적용하는 방법입니다:

  1. 먼저, Swift Package Manager(SPM)를 사용하여 Swift FontBlaster를 프로젝트에 추가합니다. Xcode에서 프로젝트를 선택하고, “Swift Packages” 탭으로 이동하여 “+” 버튼을 클릭합니다. 그런 다음, “https://github.com/ArtSabintsev/FontBlaster”를 입력하여 Swift FontBlaster를 추가합니다.

  2. 폰트 파일을 프로젝트에 추가합니다. 프로젝트 내에 ‘Fonts’라는 폴더를 생성하고, 앱에서 사용할 폰트 파일을 해당 폴더로 이동시킵니다. 폰트 파일은 .ttf 또는 .otf 형식이어야 합니다.

  3. AppDelegate.swift 파일을 엽니다. FontBlaster를 import하고, didFinishLaunchingWithOptions 함수 내에서 FontBlaster.loadFonts()를 호출합니다. 이렇게 하면 앱이 실행될 때 폰트 파일이 로드됩니다.

import FontBlaster

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        FontBlaster.loadFonts()
        return true
    }
}
  1. 사용자 설정에 맞는 폰트를 적용하려는 뷰 컨트롤러로 이동합니다. 폰트를 적용하려는 레이블, 버튼 또는 기타 UI 요소를 선택합니다.

  2. 해당 UI 요소에 적용할 폰트를 설정합니다. 폰트 이름을 사용하여 UIFont 클래스의 fontWithName(_:size:) 메서드를 호출하여 폰트를 생성하고, 이를 UI 요소의 font 속성에 할당합니다.

예를 들어, 레이블에 폰트를 설정하려면 다음과 같이 코드를 작성할 수 있습니다:

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var label: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 사용자 설정에 맞는 폰트 이름을 가져옴
        let userFont = UserDefaults.standard.string(forKey: "UserFont")
        
        // 폰트 이름을 사용하여 UIFont 객체 생성
        let font = UIFont(name: userFont, size: 16)
        
        // 레이블에 폰트 설정
        label.font = font
    }
}

위 코드에서는 사용자가 선택한 폰트 이름을 UserDefault로부터 가져와 변수 userFont에 할당합니다. 그리고 폰트 이름을 사용하여 UIFont 객체를 생성하고, 레이블에 해당 폰트를 설정합니다.

이제 앱에서는 사용자 설정에 맞는 폰트가 적용된 UI 요소를 보여줄 수 있습니다.

참고 문서: