EZSwiftExtensions/Sources/UIFontExtensions.swift

109 lines
2.6 KiB
Swift

//
// CEMKit+UIFont.swift
//
//
// Created by Cem Olcay on 12/08/15.
//
//
#if os(iOS) || os(tvOS)
import UIKit
/// EZSwiftExtensions
public enum FontType: String {
case None = ""
case Regular = "Regular"
case Bold = "Bold"
case DemiBold = "DemiBold"
case Light = "Light"
case UltraLight = "UltraLight"
case Italic = "Italic"
case Thin = "Thin"
case Book = "Book"
case Roman = "Roman"
case Medium = "Medium"
case MediumItalic = "MediumItalic"
case CondensedMedium = "CondensedMedium"
case CondensedExtraBold = "CondensedExtraBold"
case SemiBold = "SemiBold"
case BoldItalic = "BoldItalic"
case Heavy = "Heavy"
}
/// EZSwiftExtensions
public enum FontName: String {
case HelveticaNeue
case Helvetica
case Futura
case Menlo
case Avenir
case AvenirNext
case Didot
case AmericanTypewriter
case Baskerville
case Geneva
case GillSans
case SanFranciscoDisplay
case Seravek
}
extension UIFont {
/// EZSwiftExtensions
public class func Font(_ name: FontName, type: FontType, size: CGFloat) -> UIFont! {
//Using type
let fontName = name.rawValue + "-" + type.rawValue
if let font = UIFont(name: fontName, size: size) {
return font
}
//That font doens't have that type, try .None
let fontNameNone = name.rawValue
if let font = UIFont(name: fontNameNone, size: size) {
return font
}
//That font doens't have that type, try .Regular
let fontNameRegular = name.rawValue + "-" + "Regular"
if let font = UIFont(name: fontNameRegular, size: size) {
return font
}
return nil
}
/// EZSwiftExtensions
public class func HelveticaNeue(type: FontType, size: CGFloat) -> UIFont {
return Font(.HelveticaNeue, type: type, size: size)
}
/// EZSwiftExtensions
public class func AvenirNext(type: FontType, size: CGFloat) -> UIFont {
return Font(.AvenirNext, type: type, size: size)
}
/// EZSwiftExtensions
public class func AvenirNextDemiBold(size: CGFloat) -> UIFont {
return Font(.AvenirNext, type: .DemiBold, size: size)
}
/// EZSwiftExtensions
public class func AvenirNextRegular(size: CGFloat) -> UIFont {
return Font(.AvenirNext, type: .Regular, size: size)
}
// MARK: Deprecated
/// EZSwiftExtensions
@available(*, deprecated: 1.8)
public class func PrintFontFamily(_ font: FontName) {
let arr = UIFont.fontNames(forFamilyName: font.rawValue)
for name in arr {
print(name)
}
}
}
#endif