Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum Font {
- static var fontProvider: FontSizeProvider = DefaultIphoneFontSizeProvider()
- enum Size {
- case huge
- case title
- case big
- case headline
- case medium
- case small
- case custom(CGFloat)
- }
- case playfair(Size)
- case robotoRegular(Size)
- case robotoBold(Size)
- case robotoLight(Size)
- var value: UIFont {
- switch self {
- case .playfair(let size):
- let sizeValue = Font.fontProvider.getSizeValue(size: size)
- let font = R.font.playfairDisplayItalic(size: sizeValue)!
- return font
- case .robotoRegular(let size):
- let sizeValue = Font.fontProvider.getSizeValue(size: size)
- let font = R.font.robotoCondensedRegular(size: sizeValue)!
- return font
- case .robotoBold(let size):
- let sizeValue = Font.fontProvider.getSizeValue(size: size)
- let font = R.font.robotoCondensedBold(size: sizeValue)!
- return font
- case .robotoLight(let size):
- let sizeValue = Font.fontProvider.getSizeValue(size: size)
- let font = R.font.robotoCondensedLight(size: sizeValue)!
- return font
- }
- }
- }
- protocol FontSizeProvider {
- func getSizeValue(size: Font.Size) -> CGFloat
- }
- struct DefaultIphoneFontSizeProvider: FontSizeProvider {
- func getSizeValue(size: Font.Size) -> CGFloat {
- switch size {
- default:
- return 20
- }
- }
- }
Add Comment
Please, Sign In to add comment