투케이2K

249. (ios/swift) UIFontPickerViewController 사용해 폰트 설정 팝업창 호출 및 UILabel 라벨 폰트 동적 변경 실시 본문

IOS

249. (ios/swift) UIFontPickerViewController 사용해 폰트 설정 팝업창 호출 및 UILabel 라벨 폰트 동적 변경 실시

투케이2K 2022. 11. 7. 13:39

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
        print("====================================")
        print("")
        
        
        /*
         // -----------------------------
         [요약 설명]
         // -----------------------------
         1. UIFontPickerViewController 는 ios 13 부터 사용할 수 있습니다
         // -----------------------------
         */
        
        
        // [비동기 처리 수행]
        DispatchQueue.main.async {
            
            if #available(iOS 13.0, *) {
                
                let configuration = UIFontPickerViewController.Configuration()
                configuration.includeFaces = true // [bold, italic 체 옵션 추가]
                
                let fontPicker = UIFontPickerViewController(configuration: configuration)
                fontPicker.delegate = self // [딜리게이트 지정]
               
                self.present(fontPicker, animated: true, completion: nil)
                
            }
            else {
                print("")
                print("====================================")
                print("[\(self.ACTIVITY_NAME) >> testMain() :: 폰트 변경 실패 [ios 13 미만]]")
                print("====================================")
                print("")
            }
            
        }
    }





// MARK: - [extension 딜레게이트 정의 실시]
extension A_Intro: UIFontPickerViewControllerDelegate {
    
    @available(iOS 13.0, *)
    func fontPickerViewControllerDidPickFont(_ viewController: UIFontPickerViewController) {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> fontPickerViewControllerDidPickFont() :: 폰트 선택 확인]")
        print("====================================")
        print("")
        
        // [라벨 폰트 설정 변경 실시]
        guard let descriptor = viewController.selectedFontDescriptor else { return }
        let font = UIFont(descriptor: descriptor, size: 17)
        
        self.labelText.font = font
    }
    
    @available(iOS 13.0, *)
    func fontPickerViewControllerDidCancel(_ viewController: UIFontPickerViewController) {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> fontPickerViewControllerDidCancel() :: 폰트 선택 취소]")
        print("====================================")
        print("")
        
        // [창 닫기]
        self.dismiss(animated: false)
    }
}
 

[결과 출력]


반응형
Comments