프로그래밍/iOS 배포

iOS 출시 프로젝트 19일차 - Custom Font

yeop96 2021. 12. 4. 08:00

앱의 색을 정확히 표현하기 위해 폰트를 바꾸려 한다.

 

눈누라는 사이트를 활용해 폰트를 찾았다.

https://noonnu.cc/index

 

눈누 - 상업용 무료한글폰트 사이트

상업적으로 이용할 수 있는 무료 한글 폰트를 모아 놓은 사이트 눈누

noonnu.cc

일단 원하는 폰트를 찾고 다운을 받아 xcode에 타겟을 설정하여 넣어주고 Info.plist 가서 등록해주면 된다.

 

그다음 폰트가 코드로 사용되는 명을 찾기 위해 UIFont.fimilyNames를 돌려 이름을 찾아준다.

for family in UIFont.familyNames{
            print(family)
            
            for sub in UIFont.fontNames(forFamilyName: family){
                print("====> \(sub)")
            }
}

//        Nanum BaReunHiPi
//        =========> NanumBaReunHiPi
//welcomeLabel.font = UIFont(name: "NanumBaReunHiPi", size: 14) 이런식으로 씀!

좀 더 쉽게 사용하기 위해 extension도 해주었다.

import UIKit

//        Nanum BaReunHiPi
//        =========> NanumBaReunHiPi 나눔히피 폰트

extension UIFont{
    var nanumFont12: UIFont {
        return UIFont(name: "NanumBaReunHiPi", size: 12)!
    }
    var nanumFont17: UIFont {
        return UIFont(name: "NanumBaReunHiPi", size: 17)!
    }
    var nanumFont15: UIFont {
        return UIFont(name: "NanumBaReunHiPi", size: 15)!
    }
    var nanumFont21: UIFont {
        return UIFont(name: "NanumBaReunHiPi", size: 21)!
    }
    var nanumFont24: UIFont {
        return UIFont(name: "NanumBaReunHiPi", size: 24)!
    }
}

자 이제 이걸 라벨이나 글이 보이는 곳에 등록해주면 된다.

보통 원하는곳.font = UIFont().nanumFont12 이런 식으로 쉽게 됐지만 searchBar나 네비게이션 경우 TextAttributes를 활용해 적어줘야 했다. self.navigationController?.navigationBar.titleTextAttributes = [.font: UIFont().nanumFont24]

 

스토리보드로 설정할 수도 있지만 이렇게 코드로 다 일일이 해놔야 나중에 폰트를 전체적으로 변경할 때 편할것이다.

소요시간은 버튼, 네비게이션 타이틀, 서치바 폰트 바꾸는 법을 검색하면서 공부하다 3시간 정도가 걸렸다.

 

그리고 사용자 입장에서 숫자 표시가 보기 쉽게 1,000,000원 이런 식으로 쉼표가 찍히게 NumberFormatter()를 활용했다.

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
let cost = numberFormatter.string(for: Int(existingMoeny)!)! + "원"
moneyTextField.text = cost

 

이제 개발은 사용자 UX적으로 디자인 수정 작업이나 설명이 필요한 것을 보완하는 것으로 마무리 지었다.