Tipos de base para temas de una aplicación.
Costumekit está hecho de un conjunto de protocolos rápidos. Están destinados a ser implementados por usted en su aplicación.
Presentado en pequeños bocados de bocado de cacao #270: Implementación de temas con Costumekit
Incluye protocolos Color y ColorPalette .
Uso:
public enum MyAppColors : Color , ColorPalette {
case white = " FFFFFF "
case lightTeal = " 3CB39E "
case forestGreen = " 216055 "
case black = " 000000 "
} Incluye protocolo Font y una implementación SystemFont de concreto para las fuentes del sistema iOS .
Uso:
public struct MyAppFont : Font {
public init ( size : FontSize = . textStyle ( . body ) ) {
self . size = size
}
// Font
public var size : FontSize
// FontConvertible
public var FontValue : UIFont {
return UIFont ( name : " SomeCustomFont " , size : pointSize ) !
}
} Incluye protocolo SVG y tipo SVGMetadata .
Uso:
enum MyAppSVGs {
case clockGlyph
case bird
}
extension MyAppSVGs : SVG {
public func metadata ( ) -> SVGMetadata {
switch self {
case . clockGlyph : return SVGMetadata ( name : " clock " , size : CGSize ( width : 100 , height : 100 ) , fullColor : false )
case . bird : return SVGMetadata ( name : " bird " , size : CGSize ( width : 58 , height : 28 ) , fullColor : true )
}
}
} Lo que haces con SVGMetadata depende de ti. Recomiendo swiftsvg de Michael Choe. Lea más aquí para aprender a usarlo.
Los objetivos de Costumekit son ser una solución genérica, por lo que no se hacen suposiciones sobre cómo se debe recuperar algo del disco, analizado, etc. Deberá implementarlos de todos modos, por lo que nada se ve obligado a usted.
Incluye protocolo Costume . Uso:
open class MyAppCostume : Costume {
let spacing = CGFloat ( 8 )
public func wearRootBackground ( _ view : UIView ) {
view . backgroundColor = Color . black . colorValue
}
public func wearHeadline ( _ label : UILabel ) {
label . font = MyAppFont ( size : . textStyle ( . title1 ) ) . fontValue
label . textColor = MyAppColors . forestGreen . colorValue
}
public var name : String { return " Default " }
public var description : String { return " The default costume. " }
public init ( ) { }
}Salud.