Types de base pour thème une application.
Costumekit est composé d'un ensemble de protocoles rapides. Ils sont censés être mis en œuvre par vous dans votre application.
En vedette dans Little Bites of Cocoa Bite # 270: Implémentation de thème avec Costumekit
Comprend des protocoles Color et ColorPalette .
Usage:
public enum MyAppColors : Color , ColorPalette {
case white = " FFFFFF "
case lightTeal = " 3CB39E "
case forestGreen = " 216055 "
case black = " 000000 "
} Comprend le protocole Font et une implémentation SystemFont en béton pour les polices de système iOS .
Usage:
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 ) !
}
} Comprend le protocole SVG et le type SVGMetadata .
Usage:
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 )
}
}
} Ce que vous faites avec SVGMetadata dépend de vous. Je recommande Swiftsvg de Michael Choe. En savoir plus ici pour apprendre à l'utiliser.
Les objectifs de Costumekit sont d'être une solution générique, donc aucune hypothèse n'est faite sur la façon dont quelque chose doit être récupéré du disque, analysé, etc. Vous devrez de toute façon les mettre en œuvre, donc rien ne vous est contraint.
Comprend le protocole Costume . Usage:
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 ( ) { }
}Acclamations.