Closed xohxe closed 9 months ago
PR 날릴 때 체크 리스트
Issue Number: #177
기존 FontViewModel.swift 파일을 FontManager.swift 로 이름을 변경했어요. 파일위치 또한 ViewModel 폴더에서 Source>Shared로 이동했습니다. 해당 부분 머지 시 충돌할 수 있으니 유의해주세요!
FontViewModel.swift
FontManager.swift
ViewModel
Source>Shared
FontView에서 선택한 폰트를 UserDefault에 저장하고 로드하기 위해 FontManager를 싱글톤 패턴으로 구현했어요.
final class FontManager: ObservableObject { static let shared = FontManager() @Published var userFontPreference: FontType? func saveFontPreference(fontType: FontType) { UserDefaults.standard.set(fontType.rawValue, forKey: "selectedFontType") DispatchQueue.main.async { self.userFontPreference = fontType } } }
전체 코드는 FontManager.swift 파일에서 확인해주시고, 사용방법에 대해 간단히 설명드리기 위해 필수적인 내용만 소개하고 넘어갈게요.
먼저, Font Extension에 메서드를 추가했어요. 해당 부분은 FontManager에서 저장한 값을 불러오기 위해 userMainTextFont 라는 메서드를 추가했어요.
userMainTextFont
extension Font { // 사용자의 메인 텍스트 폰트를 반환하는 메서드 static func userMainTextFont(baseSize: CGFloat = 16) -> Font { let fontType = FontManager.shared.fontPreference let adjustedSize = FontManager.shared.fontSize(for: fontType, baseSize: baseSize) return .custom(fontType.rawValue, size: adjustedSize) } }
이제는 사용방법에 대해 빠르게 알아보시죠. 실제 View 에 적용할 때는 아래와 같이 작성해주시면 됩니다.
Text("적용할 폰트에 아래와 같이 적용해주세요.") .font(.userMainTextFont(baseSize: 20))
https://github.com/APP-iOS3rd/PJ3T2_Mymory/assets/75136643/557ef9e8-9bcb-4f49-9ae2-a4f50576c74c
PR 가이드라인
PR Checklist
PR 날릴 때 체크 리스트
PR Type
연관되는 issue 정보를 알려주세요
Issue Number: #177
PR 설명하기
어떻게 작동하나요? code 기반으로 설명해주세요
기존
FontViewModel.swift
파일을FontManager.swift
로 이름을 변경했어요. 파일위치 또한ViewModel
폴더에서Source>Shared
로 이동했습니다. 해당 부분 머지 시 충돌할 수 있으니 유의해주세요!FontView에서 선택한 폰트를 UserDefault에 저장하고 로드하기 위해 FontManager를 싱글톤 패턴으로 구현했어요.
전체 코드는
FontManager.swift
파일에서 확인해주시고, 사용방법에 대해 간단히 설명드리기 위해 필수적인 내용만 소개하고 넘어갈게요.먼저, Font Extension에 메서드를 추가했어요. 해당 부분은 FontManager에서 저장한 값을 불러오기 위해
userMainTextFont
라는 메서드를 추가했어요.사용방법에 대해
이제는 사용방법에 대해 빠르게 알아보시죠. 실제 View 에 적용할 때는 아래와 같이 작성해주시면 됩니다.
가능하다면 추가해주세요
변경 사항 스크린샷 혹은 화면 녹화
https://github.com/APP-iOS3rd/PJ3T2_Mymory/assets/75136643/557ef9e8-9bcb-4f49-9ae2-a4f50576c74c
기타 언급해야 할 사항들