Guest User

Untitled

a guest
Jan 17th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. enum Font {
  2. static var fontProvider: FontSizeProvider = DefaultIphoneFontSizeProvider()
  3.  
  4. enum Size {
  5. case huge
  6. case title
  7. case big
  8. case headline
  9. case medium
  10. case small
  11. case custom(CGFloat)
  12. }
  13.  
  14. case playfair(Size)
  15. case robotoRegular(Size)
  16. case robotoBold(Size)
  17. case robotoLight(Size)
  18.  
  19. var value: UIFont {
  20. switch self {
  21. case .playfair(let size):
  22. let sizeValue = Font.fontProvider.getSizeValue(size: size)
  23. let font = R.font.playfairDisplayItalic(size: sizeValue)!
  24. return font
  25.  
  26. case .robotoRegular(let size):
  27. let sizeValue = Font.fontProvider.getSizeValue(size: size)
  28. let font = R.font.robotoCondensedRegular(size: sizeValue)!
  29. return font
  30.  
  31. case .robotoBold(let size):
  32. let sizeValue = Font.fontProvider.getSizeValue(size: size)
  33. let font = R.font.robotoCondensedBold(size: sizeValue)!
  34. return font
  35.  
  36. case .robotoLight(let size):
  37. let sizeValue = Font.fontProvider.getSizeValue(size: size)
  38. let font = R.font.robotoCondensedLight(size: sizeValue)!
  39. return font
  40. }
  41. }
  42. }
  43.  
  44. protocol FontSizeProvider {
  45. func getSizeValue(size: Font.Size) -> CGFloat
  46. }
  47.  
  48. struct DefaultIphoneFontSizeProvider: FontSizeProvider {
  49. func getSizeValue(size: Font.Size) -> CGFloat {
  50. switch size {
  51. default:
  52. return 20
  53. }
  54. }
  55. }
Add Comment
Please, Sign In to add comment